最近很喜欢用必应每日一图作为壁纸,但官方提供的程序没法把图片下下来自己用,于是去搜寻了一下官方的api
必应每日一图 API
示例
https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN
参数解释
参数名称 | 是否必填 | 默认值 | 解释 |
---|---|---|---|
format | 否 | xml | 返回数据格式,可选js 或xml |
idx | 否 | 0 | 请求图片截止天数,0为今天,-1为明天,1为昨天,以此类推,最大为16 |
n | 是 | 请求图片的数量,取值为1-8 | |
mkt | 否 | 系统地区 | 地区,可选值为REC 5646定义的语言标签 |
返回内容
比如返回如下 json 格式数据
{ |
我们只需要取image.url
字段即可
然后拼上前缀https://bing.com/
比如这样拼出的最终图片链接就是:
https://bing.com/th?id=OHR.GoldfinchSunflower_ZH-CN7276848190_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp
如果想要改分辨率,只要把链接中的 1920x1080 替换就行了
Windows 聚焦每日壁纸 API
除了必应每日一图,在 Windows 锁屏界面上用的聚焦壁纸也可以拉下来用
这是抓包抓出来的链接,可能不稳定
这个 API 有多个版本,分别介绍一下
API v3
最大拿到 1080p 的图片
示例
https://arc.msn.com/v3/Delivery/Placement?fmt=json&cdm=1&ctry=ZH-CN&pid=338387
参数解释
参数名称 | 是否必填 | 默认值 | 解释 |
---|---|---|---|
fmt | 是 | 返回数据格式,目前只发现有json |
|
pid | 是 | 内部程序 id ,目前是定死的338387 |
|
cdm | 是 | 作用未知,目前定死idm=1 |
|
ctry | 是 | 国家,比如ZH-CN |
返回内容
这个的返回内容有点复杂
{ |
你需要拿到batchrsp.ver.items[0].item
字段的内容,为json字符串,把内容解析为json
对象,再拿到ad.image_fullscreen_001_landscape.u
字段的内容,就是图片的链接了
比如上面的链接拿到就是https://res.public.onecdn.static.microsoft/creativeservice/2b10551e-c37f-ab79-f66a-b6004bcdc156_lock2024-b47_wl_canaimaangelvenezuela_gettyimages-139812032_1920x1080.jpg
API v4
最大拿到 4k 的图片
示例
https://fd.api.iris.microsoft.com/v4/api/selection?&placement=88000820&bcnt=1&country=ZH-CN&fmt=json
参数解释
参数名称 | 是否必填 | 默认值 | 解释 |
---|---|---|---|
fmt | 是 | 返回数据格式,目前只发现有json |
|
placement | 是 | 内部程序 id ,目前是定死的88000820 |
|
bcnt | 是 | 返回的图片数量,取值1-4 | |
country | 是 | 国家,比如ZH-CN |
返回内容
返回的内容类似 v3 版本
{ |
类似的,需要拿到batchrsp.items[n].item
字段内容,把它解析成json
对象然后拿到ad.landscapeImage.asset
字段的内容,就是图片链接了
比如上面的图片链接就是https://res.public.onecdn.static.microsoft/creativeservice/a6963dec-d5b0-489f-2467-2f18e5ad1e33_desktop-b014_ds_tioramcastlescotland_estockphoto_2001-473745-01_rm_3840x2160.jpg