Python零基础爬虫之回车桌面壁纸并实现自动换壁
家电修理 2023-07-16 19:17www.caominkang.com电器维修
前言
嗨喽,大家好,这里是魔王~
Python零基础爬虫之回车桌面壁纸
[课题介绍]壁纸不应该只是一张图片,它应该是一门哲学
回车桌面网100000张无水印,高分辨率,电脑桌面壁纸,
包括汽车,植物,动物,手机,美女,创意设计,摄影,旅游,以及绿色保护眼睛的壁纸等等
今天通过Python程序,采集上面大量的壁纸
1、系统性分析页面 2、多页面数据解析 3、海量图片数据保存[环境]
python3.8 pycharm2021.2 requests parsel
+python安装包 安装教程视频 anaconda等等 安装包
+pycharm社区版 专业版 及 激活码私我免费获取
一. 目标网站分析 二. 代码实现 1. 通过requests发送网络请求 获取到数据 2. 通过re正则表达式在 网页源代码当中 提取需要的数据 提取壁纸标题以及详情页链接 3. 通过requests向每个壁纸详情页发送请求 获取到每个页面的数据 4. 使用css选择器在所有页面的网页源代码当中 提取需要的数据 提取所有的图片链接 5. 通过requests向每个壁纸链接发送网络请求 获取到图片的二进制数据 6. 保存图片 三. 多页内容爬取 四. 自动更换壁纸
“”"
import requests import re import parsel import os爬取图片代码
for page in range(1, 11):
print(f'-------------------------------------正在爬取第{page}页-------------------------------------')
# 1. 通过requests发送网络请求 获取到数据
html_data = requests.get(f'https://mm.enterdesk./{page}.html').text
# 2. 通过re正则表达式在 网页源代码当中 提取需要的数据
# 提取壁纸标题以及详情页链接
detail_url_list = re.findall('(.?)', html_data)
for detail_url, detail_title in detail_url_list:
print(f'正在爬取{detail_title}')
# 3. 通过requests向每个壁纸详情页发送请求 获取到每个页面的数据
detail_html_data = requests.get(detail_url).text
# 4. 使用css选择器在所有页面的网页源代码当中 提取需要的数据
selector = parsel.Selector(detail_html_data)
# 准备一个文件夹 存放壁纸
if not os.path.exists('img/' + detail_title):
os.mkdir('img/' + detail_title)
# 提取所有的图片链接
img_src_list = selector.css('.siper-slide a img::attr(src)').getall()
for img_src in img_src_list:
# 替换大壁纸,太小了不叫壁纸
img_url = img_src.replace('_360_360', '_source')
# 5. 通过requests向每个壁纸链接发送网络请求 获取到图片的二进制数据
img_data = requests.get(img_url).content
# 在链接中提取图片标题
img_title = img_url.split('/')[-1]
# 6. 保存图片
ith open(f'img/{detail_title}/{img_title}', mode='b') as f:
f.rite(img_data)
print(img_title, '爬取成功!!!')
print(detail_title, '爬取成功!!!')
自动换壁纸代码
导入模块
import in32api import in32con import in32gui import os import time
def Windos_img(paperPath): k=in32api.RegOpenKeyEx(in32con.HKEY_CURRENT_USER,"Control panel\Desk",0,in32con.KEY_SET_VALUE) # 在注册表中写入属性值 in32api.RegSetValueEx(k,"apaperStyle",0,in32con.REG_SZ,"2") # 0 代表桌面居中 2 代表拉伸桌面 in32api.RegSetValueEx(k,"Tileallpaper",0,in32con.REG_SZ,"0") in32gui.SystemParametersInfo(in32con.SPI_SETDESKWALLPAPER,paperPath,in32con.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)
hile True:
Windos_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)
hile True:
Windos_img(path+'{}'.format(L2[i]))
print(path+'{}'.format(L2[i]))
time.sleep(10) # 设置壁纸更换间隔,这里为10秒,根据用户自身需要自己设置秒数
i += 1
if i==len(L2): # 如果是一张图片,则重新到第一张
i=0
if __name__ == '__main__': changeWallpaper()
好了,我的这篇文章写到这里就结束啦!
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!
空调维修
- 我的世界电脑版运行身份怎么弄出来(我的世界
- 空调抽湿是什么意思,设置抽湿的温度有什么意
- 方太燃气灶有一个打不着火 怎么修复与排查方法
- 夏季免费清洗汽车空调的宣传口号
- 清洗完空调后出现漏水现象
- iphone6能玩什么游戏(iphone6游戏)
- 如何设置电脑密码锁屏(如何设置电脑密码锁屏
- win10删除开机密码提示不符合密码策略要求
- 电脑w7显示不是正版(w7不是正版怎么解决)
- 万家乐z8热水器显示e7解决 怎么修复与排查方法
- 1匹空调多少瓦数(1匹空调多少瓦)
- 安卓手机连接电脑用什么软件好(关于安卓手机
- 电脑网页看视频卡是什么原因(爱拍看视频卡)
- 华帝燃气灶点火器一直响然后熄火怎么办:问题
- 电脑壁纸怎么换(关于电脑壁纸怎么换的介绍)
- 冬天空调的出风口应该朝什么方向(冬天空调风