0
点赞
收藏
分享

微信扫一扫

flask 自动换背景,使用python获取bing每日壁纸当作登陆背景图片


欢迎关注原创视频教程

Python微信订餐小程序课程视频

Python实战量化交易理财系统

背景

我的博客登陆背景图就是调用的bing接口来实现的,每天自动换背景,很是华丽,但是从网上找的几个调用接口总是出现调用失败的情况,很是尴尬,于是就自己撸代码实现吧,靠谱!

思路

  1. 分析bing每日壁纸接口
  2. 使用python调用bing每日接口并解析
  3. 使用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​​

实现效果

flask 自动换背景,使用python获取bing每日壁纸当作登陆背景图片_数据库


举报

相关推荐

0 条评论