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

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值