您现在的位置是:首页 >技术教程 >Pytho制作自动更换壁纸程序,快来给你的电脑开启无限换肤吧网站首页技术教程

Pytho制作自动更换壁纸程序,快来给你的电脑开启无限换肤吧

魔王不会哭 2024-06-17 11:28:36
简介Pytho制作自动更换壁纸程序,快来给你的电脑开启无限换肤吧

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

环境使用:

  • Python 3.8 解释器

  • Pycharm 编辑器

需导入的模块

import re # 正则表达式模块
import requests >>> pip install requests # 数据请求模块
import os # 导入文件操作模块
import ctypes
import time # 时间模块
import random # 随机模块

第三方模块安装:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在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)

尾语 ?

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 ?

?问题解答 · 源码获取 · 技术交流 · 抱团学习请联系?</center

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。