自己搭建必應(yīng)壁紙api服務(wù)——墨澀網(wǎng)
必應(yīng)(Bing)集成了多個(gè)獨(dú)特功能,包括每日首頁(yè)美圖,通過(guò)將來(lái)自世界各地的高質(zhì)量圖片設(shè)置為首頁(yè)背景,美輪美奐的必應(yīng)美圖備很多人當(dāng)做壁紙使用,今天我們自己搭建api服務(wù)自動(dòng)獲取每天的必應(yīng)壁紙美圖,搭建好的api服務(wù)可以用來(lái)作為網(wǎng)頁(yè)背景或者其他服務(wù)調(diào)用,非常方便!
本站必應(yīng)壁紙api服務(wù)
https://api.sunweihu.com/bing/bing.php
原理分析
經(jīng)過(guò)對(duì)必應(yīng)首頁(yè)的抓包,我們可以獲得首頁(yè)圖的獲取API。它的格式是這樣的:
http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
這里有幾個(gè)GET參數(shù),它們的作用分別是:
- n,必要參數(shù)。這是輸出信息的數(shù)量。比如n=1,即為1條,以此類推,至多輸出8條。
- format,非必要。返回結(jié)果的格式,不存在或者等于xml時(shí),輸出為xml格式,等于js時(shí),輸出json格式
- idx,非必要。不存在或者等于0時(shí),輸出當(dāng)天的圖片,-1為已經(jīng)預(yù)備用于明天顯示的信息,1則為昨天的圖片,以此類推,idx最多獲取到前16天的圖片信息
這里將n設(shè)定為1、format設(shè)定為js、idx設(shè)定為1,去發(fā)出GET請(qǐng)求,返回的數(shù)據(jù)是這樣的:
{
"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": "上一個(gè)圖像",
"next": "下一個(gè)圖像",
"walle": "此圖片不能下載用作壁紙。",
"walls": "下載今日美圖。僅限用作桌面壁紙。"
}
}
其中的“images”節(jié)點(diǎn)下的“url”值便是我們要獲取的圖像地址。我們把它取出來(lái),再加上Bing的網(wǎng)址前綴(http://cn.bing.com)即組合成了完整的圖像地址。比如說(shuō)上面返回?cái)?shù)據(jù)的完整圖像地址是這樣的:
http://cn.bing.com/az/hprichbg/rb/TheDomeEdinburgh_ZH-CN11993142817_1920x1080.jpg
知道了背景圖的獲取方式,接下來(lái)就是用PHP去動(dòng)態(tài)抓取了。
搭建api服務(wù)
你只需新建一個(gè)php文件,貼入如下代碼:
<?php $str = file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1'); // 從bing獲取數(shù)據(jù) if(preg_match('/<url>([^<]+)<\/url>/isU', $str, $matches)) { // 正則匹配抓取圖片url $imgurl = 'http://cn.bing.com'.$matches[1]; } else { // 如果由于某些原因,沒(méi)抓取到圖片地址 $imgurl = 'http://img.infinitynewtab.com/InfinityWallpaper/2_14.jpg'; // 使用默認(rèn)的圖像(默認(rèn)圖像鏈接可修改為自己的) } header("Location: {$imgurl}"); // 跳轉(zhuǎn)至目標(biāo)圖像
然后把這個(gè)php文件上傳到你的服務(wù)器或者是網(wǎng)站空間,訪問(wèn)這個(gè)php應(yīng)該就能看到被跳轉(zhuǎn)到了Bing的圖片。
注意:服務(wù)中使用的preg_match指令最高支持php7.2版本,高于php7.2的版本會(huì)無(wú)法使用。
使用方法:
直接將那個(gè)php文件的絕對(duì)地址當(dāng)做圖片放進(jìn)網(wǎng)頁(yè)中即可。你也可以直接調(diào)用本站的必應(yīng)壁紙api服務(wù)使用。
地址:https://api.sunweihu.com/bing/bing.php
php文件下載
版權(quán)聲明:本文采用知識(shí)共享 署名4.0國(guó)際許可協(xié)議BY-NC-SA 進(jìn)行授權(quán)
文章作者:<墨澀>
文章鏈接:
免責(zé)聲明:本站為資源分享站,所有資源信息均來(lái)自網(wǎng)絡(luò),您必須在下載后的24個(gè)小時(shí)之內(nèi)從您的電腦中徹底刪除上述內(nèi)容;版權(quán)爭(zhēng)議與本站無(wú)關(guān),所有資源僅供學(xué)習(xí)參考研究目的,如果您訪問(wèn)和下載此文件,表示您同意只將此文件用于參考、學(xué)習(xí)而非其他用途,否則一切后果請(qǐng)您自行承擔(dān),如果您喜歡該程序,請(qǐng)支持正版軟件,購(gòu)買注冊(cè),得到更好的正版服務(wù)。
本站為非盈利性站點(diǎn),并不販賣軟件,不存在任何商業(yè)目的及用途,網(wǎng)站會(huì)員捐贈(zèng)是您喜歡本站而產(chǎn)生的贊助支持行為,僅為維持服務(wù)器的開支與維護(hù),全憑自愿無(wú)任何強(qiáng)求。