api 机智的必应程序员bing每日壁纸

  • 2019年11月16日更新
    • 本地不采集,直接使用API接口
    • API叠加Upyun,CDN保证下载图片稳定
    • 开机延时,防止一开机未联网就结束进程
    • 下载链接1bing2.zip (2.10 MB )
    • 下载链接2bing2.zip (2.10 MB )
  • 201年04月06日更新
    • 下载前后18天的壁纸,没有联网自动退出,自带一张美女照片
    • 壁纸按年月创建文件夹,壁纸名称则是必应官方给的名称
    • 使用2条线程
    • 自带开机启动
    • bing.zip (96.38 KB)

2018-10-20补充

https://www.bing.com/HPImageArchive.aspx?format=js&n=1&idx=0&mkt=em-Us&toHttps=1

  • format - 返回格式,可选 默认xml [xml,js]
  • n - 显示历史条数,必须 范围[1-8]
  • idx - 图片日期 -1为今天 0为昨天 1 为前天,可选 [范围-1 - 8]
  • mkt - 国家,亲测大部分国家相同,默认为访问者IP的国家,浏览器直接测试无法更改国家,可选
  • 已成功测试国家有
    • zh-CN
    • ja-JP - 不同于其他
    • en-NZ - 不同于其他
    • en-US - 同中国,时区问题
    • en-AU - 同中国,时区问题
    • en-CA - 同中国,时区问题
    • de-DE - 同中国,时区问题
  • toHtpps - 强制https 有无均可

附加一个简单的易语言软件(c#暂时不会😢)下载地址:https://f.tiiao.cn/?dir=2018/10/22

只是实现了在联网的状态下下载并设置桌面壁纸,如需更多功能请自己添加。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.版本 2
.支持库 spec
.支持库 internet

.程序集 程序集1

.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
.局部变量 data_json, 类_json
.局部变量 data, 字节集
.局部变量 text, 文本型
.局部变量 jpg, 文本型
.局部变量 date, 日期时间型
.局部变量 name, 文本型
.局部变量 save_name, 文本型

调试输出 (文件是否存在 (“D:\wallpaper\”))
.如果 (文件是否存在 (“D:\wallpaper\”) = 假)
目录_创建 (“D:\wallpaper\”)
.否则

.如果结束
data = 网页_访问 (“https://cn.bing.com/HPImageArchive.aspx?format=js&idx=-1&n=1”)
text = 到文本 (data)
name = 文本_取出中间文本 (text, “url#引号:#引号”, “#引号,#引号urlbase”)
save_name = 到文本 (取年份 (取现行时间 ())) + 到文本 (取月份 (取现行时间 ())) + 到文本 (取日 (取现行时间 ())) + 取文本右边 (name, 4)
jpg = “https://cn.bing.com” + name
写到文件 (“D:\wallpaper\” + save_name, HTTP读文件 (jpg))
系统_置桌面背景 (“D:\wallpaper\” + save_name)

返回 (0) ' 可以根据您的需要返回任意数值

json

##1X 故事的缘由

闲着无聊逛发现一个神奇的api 第三方api 觉得还是挺有意思的(第一看到有图片描述,以前有用过必应壁纸软件 自动设置成壁纸)

别人的api

响应方式:JSON。
- url 为壁纸的url链接
- title 为图片的标题
- d 为图片的描述。

api

别人的是挺好的 但是第三方永远是第三方 万一他网站哪天GG了或者被打了怎么办??于是便研究了下bing首页
发现其“必应的api” ?

1
2
3
4
5

https://cn.bing.com/HPImageArchive.aspx?format=js&n=1&toHttps=1
formath=js 时 为json格式,去除则xml格式
n=1 为今天 2为今天算起往后推
toHttps=1 估计是强制https 1为真?

api 假装在分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

{
"images": [//不用我说都知道是我们要的图片
{
"startdate": "20171019",//开始日期
"fullstartdate": "201710191600",
"enddate": "20171020",//戒指日期
"url": "/az/hprichbg/rb/LaGrandeNomade_ZH-CN10098798714_1920x1080.jpg",//图片地址 加上 https://cn.bing.com
"urlbase": "/az/hprichbg/rb/LaGrandeNomade_ZH-CN10098798714",
"copyright": "由艺术家荷梅·潘萨设计的流浪者雕像的内部细节,法国昂蒂布 (© travelstock44/Alamy)",//版权
"copyrightlink": "http://www.bing.com/search?q=Le+Nomade&form=hpcapt&mkt=zh-cn",
"quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20171019_LaGrandeNomade%22&FORM=HPQUIZ",
"wp": false,
"hsh": "86c4bc7d789fce187c0f349ebd12def5",//图片has?
"drk": 1,
"top": 1,
"bot": 1,
"hs": [

]
}
],
"tooltips": {
"loading": "正在加载...",
"previous": "上一个图像",
"next": "下一个图像",
"walle": "此图片不能下载用作壁纸。",
"walls": "下载今日美图。仅限用作桌面壁纸。"
}
}

一开始还是没有找到图片详情的 只发现一个这个东西没有怎么注意 找了几遍后终于把重心放在这个页面上

神奇

Ctrl + A 后出现了真正的面目 不得不说必应的程序员真Tm有才 或者说我见识少?

神奇

1
2
3

https://cn.bing.com/cnhp/life?toHttps=1
toHttps=1 估计是强制https 1为真?

至于文字需怎么抓取? 正则??? 写的一手烂正则。。。

1
2
3
4
5
6

<?php
$str='<div class="hplaTtl"> “思想也可以被触摸” </div> <div> <span class="hplaDM">去看看 <img class="rms_img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMAgMAAAArG7R0AAAACVBMVEUAAAAAspQAspT6118gAAAAAnRSTlMApkkmy+UAAAAmSURBVAjXY4ABCQkGBi4uBgampgYGhgULGBg0NEA0iA8UB8uDAAB0UAVhwgBi6wAAAABJRU5ErkJggg=="></span><span class="hplaAttr">法国,昂蒂布</span> </div> <div class="hplaCata"> <div class="hplatt"> 那些创意感十足的雕像 </div> <div class="hplats"> 你是否触摸到那些艺术家的脑洞 </div> <div id="hplaSnippet"> 雕刻家荷梅&#183;潘萨在世界各地制造了许多大型雕塑。“Le Nomade”描绘了一个由不锈钢制成的人形雕像,它被切割成英文字母。当你在法国的昂蒂布参观时,你会发现这个雕像非常巨大,这也与潘萨的创作理念一致,它创造的艺术不仅吸引了我们的视觉感官,我们的思想也被他带动。 </div> <div class="hplaPvd"> 文/时尚旅游 </div> </div>';
$preg = '/<div.(class|id)="(hplaTtl|hplaSnippet)">(.*?)<\/div>/';
preg_match_all($preg,$str,$arr);
print_r($arr);

运行结果

嗯 该有的都有了 至此bing 每日图片api就有了