首页 > 网站制作
一言推荐::D 获取中...

php获取bing每日图片api接口

搬砖/ 亲测/网站制作/ 2019-02-21/

Bing搜索的首页每天都会推送一张很漂亮的图片,把它保存下来,当做电脑桌面或是自己的网站背景图还不是美滋滋……
bing每日一图
今天的bing图片是这样的
既然要抓取这张图片,首先就得弄清这张图是从何而来的。经过对必应首页的抓包,我们可以获得首页图的获取API。它的格式是这样的:
http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
注意,这里有几个GET参数,它们的作用分别是:

n,必要参数。这是输出信息的数量。比如n=1,即为1条,以此类推,至多输出8条。
format,非必要。返回结果的格式,不存在或者等于xml时,输出为xml格式,等于js时,输出json格式
idx,非必要。不存在或者等于0时,输出当天的图片,-1为已经预备用于明天显示的信息,1则为昨天的图片,以此类推,idx最多获取到前16天的图片信息
这里将n设定为1、format设定为js、idx设定为1,去发出GET请求,返回的数据是这样的:

{
    "images": [
        {
            "startdate": "20161222",
            "fullstartdate": "201612221600",
            "enddate": "20161223",
            "url": "/az/hprichbg/rb/TheDomeEdinburgh_ZH-CN11993142817_1920x1080.jpg",
            "urlbase": "/az/hprichbg/rb/TheDomeEdinburgh_ZH-CN11993142817",
            "copyright": "爱丁堡一家叫做The Dome的夜店,苏格兰 (© Marty McKillop/500px)",
            "copyrightlink": "http://www.bing.com/search?q=The+Dome,+Edinburgh&form=hpcapt&mkt=zh-cn",
            "quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20161222_TheDomeEdinburgh%22&FORM=HPQUIZ",
            "wp": false,
            "hsh": "376393c9b49c6d8d1a6e7c2d38343105",
            "drk": 1,
            "top": 1,
            "bot": 1,
            "hs": []
        }
    ],
    "tooltips": {
        "loading": "正在加载...",
        "previous": "上一个图像",
        "next": "下一个图像",
        "walle": "此图片不能下载用作壁纸。",
        "walls": "下载今日美图。仅限用作桌面壁纸。"
    }
}

其中的“images”节点下的“url”值便是我们要获取的图像地址。我们把它取出来,再加上Bing的网址前缀(http://cn.bing.com)即组合成了完整的图像地址。比如说上面返回数据的完整图像地址是这样的:
http://cn.bing.com/az/hprichbg/rb/TheDomeEdinburgh_ZH-CN11993142817_1920x1080.jpg
知道了背景图的获取方式,接下来就是用PHP去动态抓取了。

如果你只是单纯的想用作网页背景的话,你只需新建一个php文件,里面贴入如下代码:

<?php
$str = file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');   //从bing获取数据
if(preg_match("/<url>(.+?)</url>/ies",$str,$matches)){ //正则匹配抓取图片url
    $imgurl='http://cn.bing.com'.$matches[1];
}else{  //如果由于某些原因,没抓取到图片地址
    $imgurl='http://img.infinitynewtab.com/InfinityWallpaper/2_14.jpg'; //使用默认的图像(默认图像链接可修改为自己的)
}
header("Location: $imgurl");    //header跳转
?>

然后把这个php文件上传到你的服务器或者是网站空间,访问这个php应该就能看到被跳转到了Bing的图片。

使用方法:直接将那个php文件的绝对地址当做图片放进网页中即可。

比如说,如果你的这个php的地址为“https://www.oleou.com/zt/bing.php”,那么你在你自己的网页的css中这么写就能当背景使用了:

body{
    width:100%;
    height:100%;
    background: url(https://www.oleou.com/zt/bing.php) no-repeat;
    -moz-background-size: cover;    /*背景图片拉伸以铺满全屏*/
    -ms-background-size: cover;
    -webkit-background-size: cover;
    background-size: cover;
}

至此完成

TAGS:php bing 图片 api 接口

打赏 点赞
邮箱
验证码
昵称