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()
好了,我的这篇文章写到这里就结束啦!
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!
空调维修
- 温岭冰箱全国统一服务热线-全国统一人工【7X2
- 荆州速热热水器维修(荆州热水器维修)
- 昆山热水器故障码5ER-昆山热水器故障码26
- 温岭洗衣机24小时服务电话—(7X24小时)登记报
- 统帅热水器售后维修服务电话—— (7X24小时)登
- 阳江中央空调统一电话热线-阳江空调官方售后电
- 乌鲁木齐阳春燃气灶厂家服务热线
- 珠海许昌集成灶售后服务电话-全国统一人工【
- 乌鲁木齐中央空调维修服务专线-乌鲁木齐中央空
- 新沂热水器故障电话码维修-新沂热水器常见故障
- 诸城壁挂炉24小时服务热线电话
- 靖江空调24小时服务电话-——售后维修中心电话
- 空调室外滴水管维修(空调室外排水管维修)
- 九江壁挂炉400全国服务电话-(7X24小时)登记报修
- 热水器故障码f.22怎么解决-热水器f0故障解决方法
- 营口热水器售后维修服务电话—— 全国统一人工