您现在的位置是:首页 >技术教程 >Pytho制作自动更换壁纸程序,快来给你的电脑开启无限换肤吧网站首页技术教程
Pytho制作自动更换壁纸程序,快来给你的电脑开启无限换肤吧
简介Pytho制作自动更换壁纸程序,快来给你的电脑开启无限换肤吧
前言
嗨喽~大家好呀,这里是魔王呐 ❤ ~!
环境使用:
-
Python 3.8 解释器
-
Pycharm 编辑器
需导入的模块
import re # 正则表达式模块
import requests >>> pip install requests # 数据请求模块
import os # 导入文件操作模块
import ctypes
import time # 时间模块
import random # 随机模块
第三方模块安装:
-
win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
-
在pycharm中点击Terminal(终端) 输入安装命令
如果出现爆红, 可能是因为 网络连接超时, 可切换国内镜像源,命令如下:
pip install -i https://pypi.doubanio.com/simple/ requests
本次案例分为两部分:
一. 获取壁纸
二. 设置自动更换
一. 获取壁纸
1. 导入模块
import requests
import re
6. 多页采集
for page in range(3, 21):
print(f'正在采集第{page}页的数据内容')
2. 发送请求
# 请求链接
link = f'http://****/index_{page}.htm'
# 发送请求
html_data = requests.get(link).text
# 提取ID
img_id_list = re.findall('<a href="/desk/(d+).htm" title=', html_data)
# for循环遍历
for img_id in img_id_list:
# 请求链接
url = f'http://*****/desk/{img_id}.htm'
# 发送请求
response = requests.get(url)
<Response [200]>
响应对象, 表示请求成功
3. 获取数据, 获取网页源代码 <服务器返回响应数据>
response.text
获取响应文本数据
response.encoding = response.apparent_encoding
自动识别码
4. 解析数据, 提取我们想要的数据内容 壁纸链接以及名字
正则表达式 简单使用:
re.findall(什么数据, 什么地方)
--> 找到所有我们想要的数据内容
# 获得到数据, 返回出现乱码了
response.encoding = 'gbk'
# 链接地址 以及 标题
img, title = re.findall('<img src="(.*?)" alt="(.*?)"', response.text)[0]
print(img, title)
5. 保存数据, 把壁纸文件保存到本地文件
图片/视频/音频/特定格式文件… 发送请求, 获取二进制数据内容
解包 --> img, title = ('链接', '标题')
# 发送请求, 获取数据
img_content = requests.get(img).content
with open('img\' + title + '.jpg', mode='wb') as f:
f.write(img_content)
二. 设置自动更换
# 导入所需模块
import os
import ctypes
import time
import random
# 写一个界面, 让用户自动选择文件夹, 自动设置更换时间
# 读文目录里面文件名
path = 'D:\自游\彼岸壁纸\img\'
files = os.listdir(path)
# for循环遍历 按照顺序更换了 随机
img_file_list = [path + file for file in files]
# 当什么成立的时候 True 布尔类型
while True: # 死循环
# time.sleep()
img_file = random.choice(img_file_list)
print(img_file)
ctypes.windll.user32.SystemParametersInfoW(20, 0, img_file, 3)
# for file in files:
# # 延时
# time.sleep(3)
# img_file = path + file
# print(img_file)
# ctypes.windll.user32.SystemParametersInfoW(20, 0, img_file, 3)
尾语 ?
要成功,先发疯,下定决心往前冲!
学习是需要长期坚持的,一步一个脚印地走向未来!
未来的你一定会感谢今天学习的你。
—— 心灵鸡汤
本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 ?
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。