必应(Bing)首页大图获取

2014-07-11

Bing必应搜索每天都会在它的首页上展示一些图片,如果我们想要得到它,该怎么做呢?(由于版权保护,Bing一般不提供该图的下载),本文将带您一步步解析必应,通过对浏览器抓包、GET类型链接的解析使您了解到必应的秘密,不仅仅是获取他的一张图片,还可以得到更多……

首先对cn.bing.com进行原始码分析后并没有得到有价值的线索。然后使用Firebug抓包后得到一些数据,如下图:

在这里根据原始码中提供的图像链接对抓到的包进行搜索后发现,必应的图片保存在这个地址。

我们将请求网址复制下来:

http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=1405024865234&pid=hp&FORM=HPCNEN&video=1
然后访问此地址

可以看到是一个配置文件,而此配置文件仅仅包含了一张图像,而且不随时间的变化而变化,接下来对请求链接进行分析。

HPImageArchive.aspx?format=js&idx=0&n=1&nc=1405024865234&pid=hp&FORM=HPCNEN&video=1

可以看到,它有六个参数,分别是idx,n,nc,pid,Form,Video

经过分析得出,idx是“index”的缩写,如果idx=0则为现行的图像,如果等于-1,则为下一刻的图像,如果等于1~17,则为曾经的天数(1个单位代表1天)。

而将其修改为16~17的时候,会显示近1个月的图像。

n参数则为有多少条数据在本页显示,可以看到n默认是1,则请求该页面只能发现仅有1条壁纸信息,经过测试发现,该值最大为8,超过8则按照8对待,即每次请求会返回8组数据(*8张相片)。

nc参数根据其值得出为时间戳,经过测试发现,不填写该参数可以获取数据。

pid参数没有发现其含义,可以省略不写。

Form,故名思意是来自的意思,意思是从哪里来的请求,经过测试后发现,该参数可能为统计类参数,没有实质作用。

video则是视频,应该是bing页面的动态全景的开关。

现在,请求地址如下:

HPImageArchive.aspx?format=js&idx=16&n=8

通过对该地址请求,我们得到了更长的页面,通过对该页面的图像进行计数,发现有19个。

现在通过正则可以将图像匹配出来

“images”:[{“startdate”:”20140710”,”fullstartdate”:”201407101600”,

“enddate”:”20140711”,”url”:”

http://s.cn.bing.net/az/hprichbg/rb/NewMexicoRadioTelescopes_ZHCN7924716399_1366x768.jpg“,”urlbase”:”/az/hprichbg/rb/NewMexicoRadioTelescopes_ZH-CN7924716399”,”copyright”:”美国新墨西哥州西索科罗,卡尔·扬基甚大天线阵(VLA)射电望远镜 (© Ilya Terentyev/Getty

………………
现在,我们得到了必应中国的壁纸,19张,而且每天都在更新。

接下来需要得到更多好看的壁纸,他们来自国外的必应搜索,比如必应日本,必应阿根廷,必应美国什么的。

那么如何做呢?

这里有一个隐藏的参数,叫做cc,所在地域的意思,在上面地址的基础上添加这个参数,值则为地区名的缩写,比如中国是cn,日本是jp,阿根廷是ar,则为:

http://www.bing.com/HPImageArchive.aspx?format=js&idx=16&n=8&cc=ar

对其进行访问我们发现文字发生变化,但是没有了域名头:

{“images”:[{“startdate”:”20140710”,”fullstartdate”:”201407100700”,

“enddate”:”20140711”,”url”:”

/az/hprichbg/rb/SFBSalt_ROW10727548319_1366x768.jpg“,

“urlbase”:”/az/hprichbg/rb/SFBSalt_ROW10727548319”,”copyright”:”Salt flats in San Francisco Bay,

California (© Art Wolfe/Mint Images)”
经过测试,根据上方成功获取到的域名头直接移植到这里,则为:

http://s.cn.bing.net/az/hprichbg/rb/SFBSalt_ROW10727548319_1366x768.jpg

对其进行访问,我们得到了一张图像:

与我们平常打开的必应是不同的图片,其实cc参数用途广泛,比如:

http://www.bing.com/?cc=ar

可以看到国外的Bing正是这张图。

如果想要制作这类的软件又怕别人抓包怎么办?使用HTTPS安全连接,使用HTTPS连接后,在强的抓包工具都会逊色,因为他们只能抓到一堆乱七八糟的东西,还有一个IP地址,仅此而已。

现在,利用

http://www.bing.com/HPImageArchive.aspx?format=js&idx=16&n=16&cc=cn

http://www.bing.com/HPImageArchive.aspx?format=js&idx=16&n=16&cc=ar
是这两个链接

PS.由于在GET该地址的同时,协议头会将你的系统版本,浏览器版本,语言,屏幕分辨率等一同提交,而结果是你获取到的图片都是你电脑的分辨率,解决办法也是有的,自定义协议头即可。

Tags: 日常