这个示例使用的Python版本为3.7版本,
一、bing壁纸接口
访问bing的官网,通过浏览器开发者工具,查看网络可以找到一个请求壁纸的接口,至于怎么判断的,我是发现当我把鼠标放在切换壁纸的左右箭头时,发现发送了一个请求,查看请求里面是有当前的壁纸信息的,链接、描述等等……
于是乎得到了这个接口,这个接口似乎就是获取壁纸信息的接口了
https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=1600743189543&pid=hp
再结合网上收集的资料,可以找到链接上的参数解释
参数 | 说明 | 可能的值 |
---|---|---|
format | 返回数据格式,固定是json的 | js |
idx | 倒数第几天的壁纸,最大为7天内,正整数表示倒数第几天 | 0,1,2 ... 7 |
n | 一次获取多少张图片,最大值为7 | 1,2 ... 7 |
nc | 时间戳,以毫秒表示 | 1600743189543 |
pid | 不知道这个参数有啥用 | hp |
二、Python程序
首先肯定是读取接口的返回数据了,这次使用的是requests框架,可以使用pip安装
pip install requests
获取壁纸json数据
#!/usr/bin/python import requests import time # 时间戳 timestamp = str(int(time.time() * 1000)) # 拼接请求地址 url = 'https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=' + timestamp + '&pid=hp' # 请求头,模拟浏览器UA headers = { 'User-Agent': ' '.join(['Mozilla/5.0 (Windows NT 10.0; Win64; x64; ServiceUI 14)', 'AppleWebKit/537.36 (KHTML, like Gecko)', 'Chrome/70.0.3538.102', 'Safari/537.36', 'Edge/18.18363']) } r = requests.get(url=url, headers=headers) result = r.json()
通过上面的请求接收到的json类似下面的格式,注意我们需要的图片是在$.images[*].url这里,虽然没写完整的url,不过经过尝试也可以知道是bing的域名了
{ "images": [{ "startdate": "20200921", "fullstartdate": "202009211600", "enddate": "20200922", "url": "/th?id=OHR.Matamata_ZH-CN8111830275_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp", "urlbase": "/th?id=OHR.Matamata_ZH-CN8111830275", "copyright": "马塔马塔附近的霍比特人村,新西兰北岛 (© 500px Asia/Getty Images)", "copyrightlink": "https://www.bing.com/search?q=%E9%A9%AC%E5%A1%94%E9%A9%AC%E5%A1%94&form=hpcapt&mkt=zh-cn", "title": "", "quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20200921_Matamata%22&FORM=HPQUIZ", "wp": true, "hsh": "fab9fa6464d63e134ae0415d9f67aac5", "drk": 1, "top": 1, "bot": 1, "hs": [] }], "tooltips": { "loading": "正在加载...", "previous": "上一个图像", "next": "下一个图像", "walle": "此图片不能下载用作壁纸。", "walls": "下载今日美图。仅限用作桌面壁纸。" } }
获取到图片地址后,就可以下载图片了,再结合上面的代码,加上下面的保存图片代码
# 获取第一个图片的链接 image_url = result['images'][0]['url'] # 拼接上bing的域名 image_url = 'https://cn.bing.com' + image_url # 定义图片保存地址 save_image_file = '/opt/images/bing.jpg' # 下载图片 r = requests.get(url=image_url, headers=headers) # 注意要以二进制只写打开文件 with open(save_image_file, 'wb') as f: # 图片的二进制数据 f.write(r.content)
好了,图片下载好并保存了,根据bing接口返回的数据,根据网友们的说法,最大可以获得16张bing壁纸图片,通过跳转idx和n这两个参数,有兴趣可以试试,这里我就不再多说了,另外这个程序可以再做一些拓展,把多张bing壁纸保存下来。
完整的代码如下
#!/usr/bin/python import requests import time # 时间戳 timestamp = str(int(time.time() * 1000)) # 拼接请求地址 url = 'https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=' + timestamp + '&pid=hp' # 请求头,模拟浏览器UA headers = { 'User-Agent': ' '.join(['Mozilla/5.0 (Windows NT 10.0; Win64; x64; ServiceUI 14)', 'AppleWebKit/537.36 (KHTML, like Gecko)', 'Chrome/70.0.3538.102', 'Safari/537.36', 'Edge/18.18363']) } # 发送请求 r = requests.get(url=url, headers=headers) # 将响应的字符串转化为json数据,即dict类型 result = r.json() # 获取第一个图片的链接 image_url = result['images'][0]['url'] # 拼接上bing的域名 image_url = 'https://cn.bing.com' + image_url # 定义图片保存地址 save_image_file = '/opt/images/bing.jpg' # 下载图片 r = requests.get(url=image_url, headers=headers) # 注意要以二进制只写打开文件 with open(save_image_file, 'wb') as f: # 图片的二进制数据 f.write(r.content)
还有微软官方也推出了bing壁纸的Windows版,不介意壁纸上有logo的话可以尝试下,官方地址:
https://www.microsoft.com/en-us/bing/bing-wallpaper
如果能看到最后,或对你有帮助的话,欢迎在评论区留言一起交流。
以上就是Python 下载Bing壁纸的示例的详细内容,更多关于Python 下载Bing壁纸的资料请关注小牛知识库其它相关文章!
本文向大家介绍使用nodejs下载风景壁纸,包括了使用nodejs下载风景壁纸的使用技巧和注意事项,需要的朋友参考一下 需要用到的第三方模块有: superagent superagent-charset (手动指定编码,解决GBK中文乱码) cheerio express async (并发控制) 完整的代码,可以在我的github中可以下载。主要的逻辑逻辑在 netbian.js 中。 以彼
爱壁纸HD是最专业的桌面高清壁纸软件,提供万款优质高清壁纸,具有试试手气、按颜色筛选壁纸以及定时切换壁纸功能等功能,充分满足了壁纸达人需求。爱壁纸HD Linux 版能够自动适配屏幕分辨率,希望我们的应用能让您喜欢,快来装扮您的 Linux 桌面吧。 爱壁纸HD Linux版采用 Python 开发。
写了个利用微软必应做的壁纸软件,欢迎大家下载使用,可运行在windows和linux上面。 视频演示:http://www.tudou.com/programs/view/pJD52De0PM4/ 每天盯着相同的桌面壁纸总让人感到疲倦和乏味,何不让桌面壁纸自动更换呢? 让“必应好壁纸”为你的桌面注入新的活力吧! 必应好壁纸每天都会为你更新来自微软必应搜索的高品质壁纸! 换一张壁纸,换一种心情!
引用脚本的内容: /*更改壁纸 by Ansifa*/ Name "更改壁纸" OutFile "更改壁纸.exe" Caption "更改壁纸" SetCompressor /FINAL /SOLID lzma !include UsefulLib.nsh page instfiles Var HWND Section ${GetWallpaper} "$r0" ;获得当前壁纸路径 ${Get
本文向大家介绍Python 爬取必应壁纸的实例讲解,包括了Python 爬取必应壁纸的实例讲解的使用技巧和注意事项,需要的朋友参考一下 最近看了下python,就想着获取下bing的图片,每天定时爬取,保存到本地,可以做背景图片用。 也在网上看了一些其他的例子。就自己动手写了一个小的爬图片的python脚本。 我们进来来爬取的是必应壁纸的相关实例,代码如下: 以上就是Python 爬取必应壁纸的实
本文向大家介绍python实现桌面壁纸切换功能,包括了python实现桌面壁纸切换功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现桌面壁纸切换功能的具体实现方法,供大家参考,具体内容如下 大体分为两个部分 一、利用爬虫爬取壁纸 第一部分爬取图片url地址并且下载至本地 爬虫针对 http://image.so.com/ 【360壁纸写的】,如果要更换url地址自己