【技术教程】使用PHP动态爬取Bing每日图形壁纸

零 技术教程评论48字数 530阅读1分46秒阅读模式

使用PHP爬取Bing(必应搜索网)每日图形壁纸,Bing搜索的首页每天都会推送一张很漂亮的图片,把它保存下来,当做电脑桌面或是自己的网站背景图岂不美哉!!

既然要抓取这张图片,首先就得弄清这张图是从何而来的。经过对必应首页的抓包,我们可以获得首页图的获取API。它的格式是这样的:文章源自灵鲨社区-https://www.0s52.com/jc/jsjc/7715.html

http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
这里有几个GET参数,它们的作用分别是:文章源自灵鲨社区-https://www.0s52.com/jc/jsjc/7715.html

n: 必要参数。这是输出信息的数量。比如n=1,即为1条,以此类推,至多输出8条。文章源自灵鲨社区-https://www.0s52.com/jc/jsjc/7715.html

format: 非必要。返回结果的格式,不存在或者等于xml时,输出为xml格式,等于js时,输出json格式文章源自灵鲨社区-https://www.0s52.com/jc/jsjc/7715.html

idx: 非必要。不存在或者等于0时,输出当天的图片,-1为已经预备用于明天显示的信息,1则为昨天的图片,以此类推,idx最多获取到前16天的图片信息文章源自灵鲨社区-https://www.0s52.com/jc/jsjc/7715.html

接下来就是用PHP去动态抓取了。PHP实现代码如下:文章源自灵鲨社区-https://www.0s52.com/jc/jsjc/7715.html

([^/isU', $str, $matches)) {
// 正则匹配抓取图片url
$imgurl = 'http://cn.bing.com'.$matches[1];
} else {
// 如果由于某些原因,没抓取到图片地址
echo "获取图片失败";
}
文章源自灵鲨社区-https://www.0s52.com/jc/jsjc/7715.html 文章源自灵鲨社区-https://www.0s52.com/jc/jsjc/7715.html

零
  • 转载请务必保留本文链接:https://www.0s52.com/jc/jsjc/7715.html
    本社区资源仅供用于学习和交流,请勿用于商业用途
    未经允许不得进行转载/复制/分享

发表评论