【Python爬虫案例】批量采集网站壁纸,实现自动更换桌面壁纸

news2024/11/22 19:09:06

前言

美照天天换,才不会腻

不知道你们是不是这样,我的手机壁纸电脑壁纸,隔三岔五就喜欢换,看久了 我就腻了,索性就用python把这个网站的壁纸都采集下来,顺便再让电脑自动更换我的桌面壁纸 ~

一篇文章教会你 👉 如何批量采集壁纸 保存下载到本地 并实现桌面自动更换壁纸

请添加图片描述

实现代码

点击文末名片 可直接领取代码

先获取图片

导入模块

import requests
import re

请求数据

for page in range(1, 126):
    url = 'https://***n.cc/toplist?page={}'.format(page)
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
    }
    response = requests.get(url=url, headers=headers)

解析数据

urls = re.findall('<a class="preview" href="(.*?)"', response.text)
for i in urls:
    response_2 = requests.get(url=i, headers=headers)
    img_url = re.findall('<img id="wallpaper" src="(.*?)"', response_2.text)[0]
    title = img_url.split('-')[-1]
    download(title, img_url)
    print(img_url)

保存数据

def download(title, url):
    path = 'img\\' + title
    response = requests.get(url=url)
    with open(path, mode='wb') as f:
        f.write(response.content)

部分效果

在这里插入图片描述

在这里插入图片描述

自动更换桌面壁纸

def Windows_img(paperPath):
    k=win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control panel\\Desktop",0,win32con.KEY_SET_VALUE)
    # 在注册表中写入属性值
    win32api.RegSetValueEx(k,"wapaperStyle",0,win32con.REG_SZ,"2")  # 0 代表桌面居中 2 代表拉伸桌面
    win32api.RegSetValueEx(k,"Tilewallpaper",0,win32con.REG_SZ,"0")
    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,paperPath,win32con.SPIF_SENDWININICHANGE) # 刷新桌面

def changeWallpaper():
    """文件夹/文件夹/图片"""
    path=input('请输入文件路径:')
    L2=os.listdir(path=path)  # 得到文件路径下的壁纸文件夹,列表类型
    i=0
    print(L2)   # 壁纸文件夹
    url_list = []
    for l2 in L2:
        detail_path = path + '\\' + l2
        L3 = os.listdir(detail_path)    # 得到壁纸文件夹路径下的图片,列表类型
        for l3 in L3:
            url_list.append(detail_path + '\\' + l3)
    print(url_list)
    while True:
        Windows_img(url_list[i])
        print('{}'.format(url_list[i]))
        time.sleep(2)  # 设置壁纸更换间隔,这里为10秒,根据用户自身需要自己设置秒数
        i += 1
        if i == len(url_list):  # 如果是最后一张图片,则重新到第一张
            i = 0
def changeWallpaper_2():
    """文件夹/图片"""
    path=input('请输入文件路径:')
    L2=os.listdir(path=path)  # 得到文件路径下的图片,列表类型
    i=0
    print(L2)
    while True:
        Windows_img(path+'\{}'.format(L2[i]))
        print(path+'\{}'.format(L2[i]))
        time.sleep(1000)  # 设置壁纸更换间隔,这里为10秒,根据用户自身需要自己设置秒数
        i += 1
        if i==len(L2):  # 如果是最后一张图片,则重新到第一张
            i=0
if __name__ == '__main__':
    changeWallpaper()

效果展示

请添加图片描述

总结

文章分享到这里就结束了,希望对大家都有所帮助

有不懂问题的可以评论区留言或者点击文末名片进行交流哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/337549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AI简报第20230210期】 ChatGPT爆火背后、为AIoT和边缘侧AI喂算力的RISC-V

1. ChatGPT爆火背后&#xff1a;AI芯片迎接算力新挑战原文:https://www.163.com/dy/article/HT7BHN3C05199NPP.htmlChatGPT的出圈走红为AIGC打开全新市场增量&#xff0c;催生了更高的算力需求。作为人工智能三大核心要素之一&#xff0c;算力也被誉为人工智能“发动机”。华泰…

使用服务器搭建alist和webdav

docker镜像官网&#xff1a;https://hub.docker.com/r/xhofe/alist 一、准备工作 环境&#xff1a;centos7、docker 二、步骤 1.拉取alist镜像 在根目录下执行以下命令&#xff1a; docker pull xhofe/alist:latest2.运行alist docker run -d --restartalways -v /etc/ali…

互联网医院源码 线上问诊 智慧医院源码 C#源码

互联网医院平台源码 智慧医院管理系统源码 开发环境&#xff1a;ASP.NET C# VS2019 SQL2008 依托于实体医院利用互联网技术对接院内业务信息系统&#xff0c;向患者提供基于线上问诊、预约挂号、缴费结算、医患互动、诊后随访、健康科普和复诊等全面的医疗健康互联网服务。…

一文读懂 Zebec Chain 的“先行网络” Nautilus 链

最近&#xff0c;Zebec上线了DAO治理系统后&#xff0c;上线并通过了关于Nautilus链的提案&#xff0c;这也是DAO系统上线后通过的首个提案。Nautilus链可以被看作是Zebec Chain上线前的“先行”链&#xff0c;并且是目前行业内为数不多的以“Layer3”作为特点的模块化通用链&a…

花2到5块钱注册体验chatgpt

最近很火的chatGPT不对中国开放&#xff0c;简直太坑了。不过网上也有很多例子去如何注册&#xff0c; 1. 需要可以上网的非中国IP。 有梯子的也可以&#xff0c; 我是某宝3块钱租了一个一天体验的国外服务器&#xff0c;可以查阅资料&#xff0c;有需要可以直接去淘。 2.一个…

vsCode添加右击打开文件夹或者文件功能

1. 前言 vsCode有两种安装方式&#xff0c;通过exe执行安装或者绿色版的软件安装。如果使用绿色版软件&#xff0c;不会自动右击文件夹用vscode打开。此时就需要通过修改注册表的方式进行操作。 2. 修改注册表 2.1 打开注册表 win r regedit2.2 右击文件用vscode打开 找到…

I.MX6ULL内核开发4:设备号的组成与哈希表

目录 一、设备号 二、hash table 一、设备号 文件夹&#xff1a;/home/geralt/linux_driver/kernel/ebf_linux_kernel_6ull_depth1/include/linux/kdev.h 这里面是linux中关于设备号的具体描述 #define MINORBITS 20 #define MINORMASK ((1U << MINORBITS) - 1)#defin…

【C++】十、继承

一、继承的概念及定义继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象程序设计的层次结构&#xff…

Flink CEP 新特性进展与在实时风控场景的落地

摘要&#xff1a;本文整理自阿里云开发工程师耿飙&阿里云开发工程师胡俊涛&#xff0c;在 FFA 实时风控专场的分享。本篇内容主要分为四个部分&#xff1a;Flink CEP 介绍&新功能解读动态多规则支持与 DemoFlink CEP SQL 语法增强未来规划■ 分享中的动态 CEP 和 CEP S…

mysql面试题(集合)

mysql如何实现索引机制 mysql中索引分三类&#xff1a;B树索引、Hash索引、全文索引 InnoDB索引与MYISAM索引实现的区别是什么 1.InnoDB的辅助索引data域存储相应记录主键的值而不是地址 2.InnoDB的数据文件本身就是主索引文件 3.MyISAM的索引和数据是分开存储的 一个表中如…

ChatGPT 来了,你准备好了吗?

周三的晚上&#xff0c;我做了一次直播&#xff0c;题目叫做《ChatGPT 来了&#xff0c;老师和同学们准备好了吗&#xff1f;》。如果你还没看&#xff0c;欢迎看看回放视频。做这次直播&#xff0c;是因为受了三重刺激。第一重&#xff0c;来自于我的一位好友&#xff0c;也是…

自上而下的传输协议-TCP/IP 的演化

动机来自昨天下班路上快到家发的一则朋友圈&#xff1a; 作为因果的历史是不存在的。因为有无数种对等的解释。这个可以用拓扑学证明的&#xff0c;模型非常简单&#xff0c;事件作为点&#xff0c;事件之间的关系作为连接两点的有向边。 最近思考一个问题&#xff0c;传输协…

MongoDB 更新文档

MongoDB 使用 update() 和 save() 方法来更新集合中的文档。 update() 方法 update() 方法用于更新已存在的文档。语法格式如下&#xff1a; db.collection.update(<query>,<update>,{upsert: <boolean>,multi: <boolean>,writeConcern: <document…

移除元素-力扣27-java

一、题目描述给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新…

数据与C(整数存储的各种类型)

目录 一.int&#xff08;%d&#xff09; 1.sizeof应用 2.声明int变量以及初始化 3.打印int值 二.short&#xff08;%hd&#xff09;和long(%ld) 1.short大小 2.long大小 3.short和long的分支 三.综合讲解 四.整数类型总结 五.可移植类型&#xff1a; stdint.h 和 in…

年轻人越来越反感“专家”,问题出在哪儿?

专家的建议&#xff0c;又惹怒了年轻人。 最近&#xff0c;某学者表示&#xff0c;在鼓励年轻人生育、婚恋的问题上&#xff0c;可以将法定结婚年龄下调至18岁&#xff0c;以此降低成婚门槛促进单身男女建立家庭。 此话一出&#xff0c;立刻引来无数板砖。不少人质疑&#xf…

CrossOver2023mac跨系统互通切换win虚拟机

CrossOver2023版是在Mac上运行Win软件的最简单方法&#xff0c;有了它&#xff0c;你无须 Win许可、重新启动或使用虚拟机即可在mac上使用Win软件。CrossOver23可以轻松地从Dock本地启动Win程序。CrossOver版还集成了macOS 功能&#xff0c;例如跨平台复制和粘贴&#xff0c;以…

数据与C(ASCII码,char)

目录 一.ASCII码讲解 二.非打印字符&#xff08;转义字符&#xff09; 三.扩展小知识 一.ASCII码讲解 char类型用于存储字符&#xff0c;从技术层面看&#xff0c;char时整数类型&#xff0c;因为char类型实际上存储的是整数而不是字符。计算机使用数字编码来处理字符&…

javaEE 初阶 — 超时重传机制

文章目录超时重传机制1. 数据重复传输问题2. 如何解决数据重复传输问题3. 重传次数问题TCP 的工作机制&#xff1a;确认应答机制 超时重传机制 如果传输数据的时候丢包了该怎么办&#xff1f; 利用 超时重传&#xff0c;也就是超过了一定的时间&#xff0c;如果还没响应就重新…

回顾 | 开学季(一)- 在 Windows / macOS 上配置你的开发环境

点击蓝字关注我们编辑&#xff1a;Alan Wang排版&#xff1a;Rani Sun微软 Reactor 为帮助广开发者&#xff0c;技术爱好者&#xff0c;更好的学习 .NET Core, C#, Python&#xff0c;数据科学&#xff0c;机器学习&#xff0c;AI&#xff0c;区块链, IoT 等技术&#xff0c;将…