欢迎关注原创视频教程
Python微信订餐小程序课程视频
Python实战量化交易理财系统
背景
我的博客登陆背景图就是调用的bing接口来实现的,每天自动换背景,很是华丽,但是从网上找的几个调用接口总是出现调用失败的情况,很是尴尬,于是就自己撸代码实现吧,靠谱!
思路
- 分析bing每日壁纸接口
- 使用python调用bing每日接口并解析
- 使用flask 实现对外调用接口
bing每日壁纸接口说明
接口:https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
参数说明:
format:返回数据格式,format=js返回数据格式为json,默认不写返回的是xml格式
idx:不写或idx=0返回当天壁纸数据,-1为已经预备用于明天显示的信息,1则为昨天的图片,idx最多获取到之前16天的图片信息
n:返回壁纸数量,比如n=1,即为1条,以此类推,至多输出8条
在此我选择是json格式,如下:
{
    "images": [{
        "startdate": "20200325",
        "fullstartdate": "202003251600",
        "enddate": "20200326",
        "url": "/th?id=OHR.NoCaliCoast_ZH-CN2604627519_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp",
        "urlbase": "/th?id=OHR.NoCaliCoast_ZH-CN2604627519",
        "copyright": "鸟瞰蒙特雷附近的大苏尔海岸线,加利福尼亚州 (© Blue Planet Archive/Alamy)",
        "copyrightlink": "https://www.bing.com/search?q=%E5%A4%A7%E8%8B%8F%E5%B0%94%E6%B5%B7%E5%B2%B8%E7%BA%BF&form=hpcapt&mkt=zh-cn",
        "title": "",
        "quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20200325_NoCaliCoast%22&FORM=HPQUIZ",
        "wp": true,
        "hsh": "db3f08bec4f87e23f23f3aedf7698f29",
        "drk": 1,
        "top": 1,
        "bot": 1,
        "hs": []
    }],
    "tooltips": {
        "loading": "正在加载...",
        "previous": "上一个图像",
        "next": "下一个图像",
        "walle": "此图片不能下载用作壁纸。",
        "walls": "下载今日美图。仅限用作桌面壁纸。"
    }
}返回参数中,url是我们要获取的壁纸地址,urlbase是基础地址,根据规则,可以提供不同分辨率的壁纸大小,比如:1920x1080
使用python实现bing每日壁纸接口
代码如下:
def get_bing_img_url(format='js',idx=0):
'''
获取bing每日壁纸地址
'''
url = 'https://cn.bing.com/HPImageArchive.aspx?format={}&idx={}&n=1'.format(format,idx)
resp = requests.get(url,timeout=5).text
data = json.loads(resp)
return 'https://cn.bing.com{}'.format(data['images'][0]['url'])
if __name__ == "__main__":
img = get_bing_img_url()
print(img)
调用返回:
https://cn.bing.com/th?id=OHR.NoCaliCoast_ZH-CN2604627519_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp
flask实现对外调用接口
from flask import Flask, redirect
app = Flask(__name__)
def get_bing_img_url(format='js',idx=0):
'''
获取bing每日壁纸地址
'''
url = 'https://cn.bing.com/HPImageArchive.aspx?format={}&idx={}&n=1'.format(format,idx)
resp = requests.get(url,timeout=5).text
data = json.loads(resp)
return 'https://cn.bing.com{}'.format(data['images'][0]['url'])
@app.router('/bing_bg')
def bing_bg():
return redirect(get_bing_img_url())
本站提供的对外调用接口
https://www.h3blog.com/bing_bg
实现效果

                










