首页 > 编程语言 >flask 自动换背景,使用python获取bing每日壁纸当作登陆背景图片

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

时间:2022-11-21 23:35:31浏览次数:58  
标签:idx format flask bing python url 壁纸 com


欢迎关注原创视频教程

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每日壁纸当作登陆背景图片_flask


标签:idx,format,flask,bing,python,url,壁纸,com
From: https://blog.51cto.com/u_11408356/5875468

相关文章

  • Python办公自动化之Excel做表自动化:全网最全,看这一篇就够了!
    0PythonExcel库对比我们先来看一下python中能操作Excel的库对比(一共九个库):1Pythonxlrd读取操作Excel1.1xlrd模块介绍配合前天发布的​​搞定,爬取公众号文章转换成PDF......
  • python中的字符串的常用方法介绍
    a="alxeLi金角大王"   #创建一个字符串来演示方法的功能结果。一下都使用这个字符串演示。首先要了解的常识性的知识点是:字符串是不可变的序列。所有对字符串的......
  • 学习python-Day91
    一、支付宝支付介绍支付类型:支付宝支付微信支付需要备案过域名云闪付API,SDKsdk:第三方sdk,基于API封装的官方sdk支付宝沙箱环境Sandbox:程序的虚拟执行环境......
  • python中的字符串操作
    #1.索引(下标)print('1.索引')str_data='Python'#[索引(下标)]取索引的格式#正负索引#获取单个数据sub_str=str_data[4]print(sub_str)sub_str=str_d......
  • Python 多进程(一)简单场景
    需求:使用多进程,把add的结果放进list原始的多进程之间不能共享数据使用Manager来管理list,多进程可以操作同一个list使用multiprocessing.Manager().list()创建一个listd......
  • python编写程序练习-车牌摇号程序
     importrandom  importstring count=0   #设定计数器car_numbers=[]  #创建一个列表,用来接收生产的车牌号池whilecount<3:   #创建用......
  • python单例模式
    详情参考:https://www.cnblogs.com/shenbuer/p/7724091.html一、单例模式的概述:单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。......
  • 多进程实现TCP服务端并发、互斥锁代码实操、线程理论、创建线程的两种方式、线程的诸
    多进程实现TCP服务端并发importsocketfrommultiprocessingimportProcessdefget_server():server=socket.socket()server.bind(('127.0.0.1',8080))......
  • Python学习笔记(四)
    控制语句条件控制结构在python中,实现条件控制的语句是if...else语句。if(条件):语句块else:语句块Python没有强制要求条件加上括号,但最好还是加上吧。 ......
  • python之路32 网络并发线程方法 线程池 协程
    多进程实现TCP服务端并发服务端:importsocketfrommultiprocessingimportProcessdefget_server():server=socket.socket()server.bind(('127.0.0.1'......