切换风格

默认Lavender Sky Flowers Wizard Snow Beige California City Dragon Black London Sunset glow Pink Cloud

8

主题

314

积分

0

精华

用户组 

易积分
1279
热心
0
好评
0
两种小方法将Bing每日图片保存[复制链接]
发表于 2019-10-3 16:51:59 | 显示全部楼层 |阅读模式
本帖最后由 zjr001 于 2019-10-3 16:54 编辑

可以将Bing搜索首页的每日图片保存到本地,或者服务器上。

NO.1   利用PHP方式Get
  • 新建一个php文件,并命名为bing-get.php(这个随便命名就可以)—也可以在文章底部下载已建好文件
  • 将下面代码输进去
  • 上传到主机或服务器
  • 在浏览器打开这个页面
  • Get成功!  在bing-get.php的同级目录下会多出temp文件夹和dat.txt文件
  • temp文件夹下的图片就是必应首页图,dat.txt文件为保存的纪录

代码
<?php
$path = 'temp';   //设置图片缓存文件夹
$filename = date("Ymd") . '.jpg';  //用年月日来命名新的文件名
if (!file_exists($path.'/'. $filename))    //如果文件不存在,则说明今天还没有进行缓存
{
    if(!file_exists($path)) //如果目录不存在
    {
        mkdir($path, 0777); //创建缓存目录
    }
    $str = file_get_contents('http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1'); //读取必应api,获得相应数据
    $str = json_decode($str,true);
    $imgurl = 'http://cn.bing.com'.$str['images'][0]['url'];    //获取图片url
    $img = grabImage($imgurl, $path.'/'.$filename); //读取并保存图片
    $handle = fopen("dat.txt", "a");    //用于存放图片信息,如果不需要保存图片的相关信息,可以把下面这些去掉。
    if ($handle)
    {
        $copyright = $str['images'][0]['copyright'];    //说明
        $startdate = $str['images'][0]['startdate'];
        $fullstartdate = $str['images'][0]['fullstartdate'];
        $enddate = $str['images'][0]['enddate'];
        $urlbase = $str['images'][0]['urlbase'];
        $copyrightlink = $str['images'][0]['copyrightlink'];
        $quiz = $str['images'][0]['quiz'];
        $wp = $str['images'][0]['wp'];
        $hsh = $str['images'][0]['hsh'];
        $drk = $str['images'][0]['drk'];
        $top = $str['images'][0]['top'];
        $bot = $str['images'][0]['bot'];
        $tempArr = array("imgurl"=>$imgurl,"copyright"=>$copyright, "startdate"=>$startdate,
        "fullstartdate"=>$fullstartdate, "enddate"=> $enddate, "urlbase"=>$urlbase,
        "copyrightlink"=> $copyrightlink, "quiz"=>$quiz, "wp"=> $wp,
        "hsh"=>$hsh,"drk"=>$drk, "top"=> $top, "bot"=> $bot);   //将相关信息放进数组中
        fwrite($handle, json_encode($tempArr) ."\r\n"); //最终以json格式保存在文本文档中
        fclose($handle);
    }
}
function grabImage($url, $filename = "")
{
    if($url == "") return false; //如果$url地址为空,直接退出
    if ($filename == "") //如果没有指定新的文件名
    {
        $ext = strrchr($url, ".");  //得到$url的图片格式
        $filename = date("Ymd") . $ext;  //用天月面时分秒来命名新的文件名
    }
    ob_start();         //打开输出
    readfile($url);     //输出图片文件
    $img = ob_get_contents();   //得到浏览器输出
    ob_end_clean();             //清除输出并关闭
    $size = strlen($img);       //得到图片大小
    $fp2 = @fopen($filename, "a");
    fwrite($fp2, $img);         //向当前目录写入图片文件,并重新命名
    fclose($fp2);
    return $filename;           //返回新的文件名
}

要想让它每日自动访问并下载,可以用360阿里云等网站监控服务来监控这个网址就行。

NO.2   利用PowerShell方式Get
据说PowerShell是个非常强大的东西,可以参照文章
用这个方法获取每日图片也证明它确实挺强大。。
这种方法跟上面那种方法不同的是 它可以一次下载Bing首页的全部每日图片,但是要每天手动点开来。。

方法
  • 新建一个bing.ps1文件(注意后缀是ps1)—也可以在文章底部下载已建好文件
  • 将下面代码输入进去
  • 右键,选择“使用PowerShell运行”…(PowerShell程序是Windows系统自带的!)
  • 啪啪,桌面上多了一个images文件夹
  • Get成功!里面有8张Bing首页每日图,和一个jsons纪录文件夹
图图
获取的8张图片就是Bing首页的图,可以在Bing首页右下角的箭头图标翻页查看。



下载信息
  • 名称:bing-get.php
  • 格式:zip
  • 大小:1.3KB
游客,如果您要查看本帖隐藏内容请回复






易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

11

主题

479

积分

0

精华

用户组 

易积分
1528
热心
0
好评
0

活跃会员

发表于 2019-10-3 17:56:54 | 显示全部楼层
两种小方法将Bing每日图片保存
易如意中文编程学习交流论坛没你也精彩~
回复

使用道具 举报

3

主题

493

积分

0

精华

用户组 

易积分
2405
热心
0
好评
0
发表于 2019-10-4 16:08:01 | 显示全部楼层
如果您要查看本帖隐藏内容请回复
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

4

主题

330

积分

0

精华

用户组 

易积分
1042
热心
0
好评
0
发表于 2019-10-13 06:33:03 来自手机 | 显示全部楼层
RE: 两种小方法将Bing每日图片保存
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

2

主题

30

积分

0

精华

用户组 

易积分
9
热心
0
好评
0
发表于 2021-10-26 13:39:00 | 显示全部楼层
阿斯达达阿撒旦斯达
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

QQ|sitemap|免责声明|RGB颜色对照表|手机版|小黑屋| 易如意 - E4A中文编程学习交流论坛

GMT+8, 2024-5-24 19:58 , Processed in 0.046691 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2018 eruyi.cn

返回顶部