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()
好了,我的这篇文章写到这里就结束啦!
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!
空调维修
- 海信电视维修站 海信电视维修站点
- 格兰仕空调售后电话 格兰仕空调维修售后服务电
- 家电售后服务 家电售后服务流程
- 华扬太阳能维修 华扬太阳能维修收费标准表
- 三菱电机空调维修 三菱电机空调维修费用高吗
- 美的燃气灶维修 美的燃气灶维修收费标准明细
- 科龙空调售后服务 科龙空调售后服务网点
- 华帝热水器维修 华帝热水器维修常见故障
- 康泉热水器维修 康泉热水器维修故障
- 华凌冰箱维修电话 华凌冰箱维修点电话
- 海尔维修站 海尔维修站点地址在哪里
- 北京海信空调维修 北京海信空调售后服务
- 科龙空调维修 科龙空调维修故障
- 皇明太阳能售后 皇明太阳能售后维修点
- 海信冰箱售后服务 海信冰箱售后服务热线电话
- 海尔热水器服务热线