必应今日美图的获取展示

前段时间学习了解了一个新的PHP Web框架,laravel “简洁,优雅,现代化”是这个框架的关键词,还在继续探索。

就想着用这个来实现一点好玩的事情。

必应搜索每天都更新一张图,而且图片质量高,不限制访问意味着不需要保留到本地,现在需要做的只是将每天的图片信息收集起来按日期的维度存储起来即可。

那么到哪里去获取bing每天的图片呢,最好的地方当然是bing官网了,直接查看源代码可以清楚的看到,图片地址是在id=”bgDiv” 的div 上面

这样就能找到我们想要的图片了,但是还没结束,我们还需要存储到图片名称,地理位置信息,作者,图片简介等。

查看源代码,可以看到详细信息在 id=”lap_w”的 div 中

需要注意的在源代码中不能直接搜索到有关图片信息的文字,因为此处是ajax加载而来的。那既然是ajax那就找找吧,查看xhr返回请求,除了js 文件,一些数据状态。也就只有这一个比较像了

打开就看到了所有我们想要的了。

http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=1477557984674&pid=hp&video=1

本来的思路是按源代码进行页面解析获取出信息,但是这样找到了官方API,那就不必费神解析去了。直接用吧。

当然了,也不必这么麻烦,直接在google 搜索必应 美图 API就能得到这个地址了。

那么我们就看看参数,能否获取到更多的历史数据

format=js&idx=0&n=1&nc=1477557984674&pid=hp&video=1

format: 数据返回格式,json

idx: 开始的天数,-1 代表今天,0 代表昨天,1代表前天

n: 表示从 idx 开始往前的天数,经测试目前最多只能达到9天;但idx 的变动可以获取到对应天数之前的数据;idx类似于 mysql 查询的offset数据,而n 则就像是pagesize

nc: 请求时的时间戳和毫秒数

pid: 不知

video: 1 是否显示视频地址,很多时候必应首页的是一个<video>视频播放,但也是有一张背景大图的

比如说这个

目前bing最大可查看api 地址是9天,也就是 idx=9即可。

现在每天的详细信息(城市,国家,经纬度)等信息还有一个接口提供

http://cn.bing.com/cnhp/coverstory/

但是不知道参数,也只能显示每天数据。

那接下来就很简单了,存储数据即可。最后的成品是:http://bing.plmeizi.com/ 展示了获取到的数据图片。

那么我要查询bing 所有的图片在哪去看呢。很简单还是官方:http://www.bing.com/gallery/ 比起我的那不知道好到哪里去了,非常详细,如果你想找某天或者某个城市的图还是去官方地址查找

最后感兴趣的可以参考下我的表结构。

 

CREATE TABLE `bi_picture` (
`pi_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`pi_copyr_crc32` bigint(12) DEFAULT '0' COMMENT '简介版权信息crc32',
`pi_startdate` int(8) NOT NULL DEFAULT '0' COMMENT '展示开始时间',
`pi_enddate` int(8) NOT NULL DEFAULT '0' COMMENT '展示开始时间',
`pi_url` varchar(255) NOT NULL COMMENT '必应主图',
`pi_copyright` varchar(255) NOT NULL COMMENT '主图信息',
`pi_copyrightlink` varchar(255) NOT NULL COMMENT '主图必应搜索url',
`pi_hash` varchar(32) DEFAULT '' COMMENT 'hash信息',
`pi_title` varchar(255) DEFAULT '' COMMENT '图片名称,每天信息接口',
`pi_addr` varchar(255) DEFAULT '' COMMENT '图片地理位置',
`pi_para1` varchar(500) DEFAULT '' COMMENT '图片描述1',
`pi_para2` varchar(500) DEFAULT '' COMMENT '图片描述2',
`pi_provider` varchar(32) DEFAULT '' COMMENT '图片提供者',
`pi_thumb` varchar(255) DEFAULT '' COMMENT '缩略图地址imageUrl',
`pi_searchpic` varchar(255) DEFAULT '' COMMENT '必应搜索图片地址imageUrl',
`pi_country` varchar(32) DEFAULT '' COMMENT '国家',
`pi_city` varchar(32) DEFAULT '' COMMENT '城市',
`pi_longitude` decimal(10,6) NOT NULL DEFAULT '0.000000' COMMENT '经度',
`pi_latitude` decimal(10,6) NOT NULL DEFAULT '0.000000' COMMENT '纬度',
`last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`pi_id`),
KEY `pi_copyr_crc32` (`pi_copyr_crc32`),
KEY `pi_enddate` (`pi_enddate`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='必应今日美图信息表';

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*