使用 Python 实现获取当日必应壁纸并自动设置为桌面壁纸
由于文章中使用的接口并不是很稳定(会时常出现失效情况),重找了个接口,并将代码重构了(优化版)文章地址:https://xycz.xyz/archives/优化版python获取当日必应壁纸并自动设置为桌面壁纸
起因:必应官方是有这类工具的,但是下载下来有水印,然后找到了别人用易语言开发的无水印版,前几日突然失效了,一直无法下载壁纸,就想着自己写一个
- 分析需求
- 设计程序
- 编写代码
- 调试程序
分析需求
实现下载必应当日壁纸并设置为桌面壁纸
设计程序
- 请求对象的定制
- 获取响应数据
- 下载图片
- 设置为桌面壁纸
- 将 .py 文件打包成后缀为 .exe 的文件
请求对象的定制
- url组成:其 url 为https://bing.ioliu.cn/?p= + 页码
- 获取请求头
- 请求对象的定制
- 返回请求对象
获取响应数据
- 模拟浏览器向服务器发送请求
- 获取响应数据
- 返回响应数据
下载图片
- 使用 xpath 解析服务器响应文件
- 使用 xpath 获取当日的壁纸的下载路径
- 使用 urllib 下载壁纸
将下载下来的图片设置为桌面壁纸
将 .py 文件转成 .exe 文件
- 安装 PyInstaller 模块
pip install PyInstaller - 将 .py 文件打包成 .exe 文件
找到需要打包的 .py 文件路径,在地址栏输入 cmd,打开命令窗口后输入
pyinstaller -F 文件名.py
执行完毕后会生成三个文件夹,生成的 .exe 文件就在 dist 文件夹中
import urllib.request
from lxml import etree
import time
import ctypes
def create_request(page):
url = 'https://bing.ioliu.cn/?p=' + str(page)
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29'
}
request = urllib.request.Request(url=url,headers=headers)
return request
def get_content(request):
response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')
return content
def down_load(content):
# 下载图片
# urllib.request.urlretrieve('图片地址','文件的名字')
tree = etree.HTML(content)
src = tree.xpath('//div[@class="container"]//div[1]//div[1]//img/@src')
name = time.strftime("%Y%m%d",time.localtime())
url = src[0].replace("640x480","1920x1080")
filename = 'D:/IDM download/images/'+ name + '.jpg'
urllib.request.urlretrieve(url=url,filename=filename)
return filename
if __name__ == '__main__':
# 1.请求对象的定制
request = create_request(2)
# 2.获取网页的源码
content = get_content(request)
# 3.下载
filename = down_load(content)
ctypes.windll.user32.SystemParametersInfoW(20, 0, filename , 0)
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
临川羡鱼!
喜欢就支持一下吧