听说你还在点击图片,然后鼠标右键设置电脑壁纸,小编教你如何实现自动更换电脑壁纸操作

您所在的位置:网站首页 壁纸更换电脑怎么设置图片显示 听说你还在点击图片,然后鼠标右键设置电脑壁纸,小编教你如何实现自动更换电脑壁纸操作

听说你还在点击图片,然后鼠标右键设置电脑壁纸,小编教你如何实现自动更换电脑壁纸操作

2024-07-10 07:35| 来源: 网络整理| 查看: 265

运用Python实现自动更换电脑壁纸

前言

最近看了一个讲解win的视频,觉得内容还不错,于是就写了这一篇博文,希望大家喜欢。本文章分为两个阶段,第一个阶段是下载电脑壁纸,因为小编没有图片壁纸,所以我写了一个爬取彼岸壁纸的爬虫;第二个阶段是实现自动更换电脑壁纸的操作,如果读者有图片壁纸,可以直接看第二个阶段喔!

文章目录 运用Python实现自动更换电脑壁纸1. 准备壁纸1.1 运用Python爬虫下载彼岸壁纸 2.实现自动更换电脑壁纸3.推荐两个比较好的电脑壁纸网址4.总结

1. 准备壁纸

这是一个爬虫的过程,但是应用了自动化,也就是python中的selenium模块。 需要的python模块有requests、selenium、os、time、bs4

1.1 运用Python爬虫下载彼岸壁纸

首先需要来到这个网址:彼岸图网 我们在输入框中输入自己想搜索的内容,点击搜索,可以发现,此时的网址格式是这样的。 在这里插入图片描述 也就是输入的关键字变成了搜索id了,那么怎样得到这个网址呢?小编是这样的,应用到selenium模块,实现搜索自动化,来到这个网址的界面,然后,应用selenium 模块下面的current_url 方法就可以得到这个网址了。 这个网址下面就是我们搜索得到的图片了。很显然,这些图片不可能只有一页(ajax除外),发现这个网址下面有个总页码,如下面的总页码是191. 在这里插入图片描述 我们点击其中的一个页码就如可以发现,接下来的网址的这个为: http://pic.netbian.com/e/search/result/index.php?page=1&searchid=18 ,而且 page 后面的参数要比实际页数少一,也就是我选择第一页的时候,实际 page=0 . 我们点击其中的图片看一下(当然是在打卡开发者模式的情况下的) 在这里插入图片描述 发现这个图片的尺寸比较小,如果直接这样把它下载下来,设置为壁纸的话,电脑桌面肯定会比较模糊。 经过几次尝试,发现在另一个网址内部,也有这个图片的下载地址,图片尺寸比较大,设置为电脑壁纸不会出现刚才那种现象。 在这里插入图片描述 在这里插入图片描述 之后,我们只需得到这个网址,并下载即可。 参考代码如下:

from selenium import webdriver from bs4 import BeautifulSoup import requests import os import time def mk(keyword): # 定义mk方法,用于创建文件夹 path2='./{}'.format(keyword) # 形成文件夹路径 # 创建文件夹 try: os.mkdir(path=path2) except Exception as e: print('error:{}'.format(e)) return path2 def get_info(): # 定义get_info方法,得到输入的关键字的id,并显示图片的总页数 url='http://pic.netbian.com/' driver=webdriver.Chrome() driver.get(url=url) driver.implicitly_wait(30) keyword=input('请输入你想搜索的壁纸类型:') path=mk(keyword=keyword) driver.find_element_by_xpath('//form[@id="schform"]/p/input').send_keys(keyword) # 向输入框中输入想搜索的内容 driver.find_elements_by_xpath('.//form[@id="schform"]/input')[0].click() # 点击按钮框 soup=BeautifulSoup(driver.page_source,'lxml') # 解析内容 url=driver.current_url # 得到此时的网址 driver.close() # 关闭 list2=soup.select('div.page>a') # 图片页数的列表 pages=list2[-3].get_text() # 图片总页数 print('这种图片的总页数为{}'.format(pages)) id=url[url.rfind('=')+1:] # searchid return id,path def bs(content): # 得到当前的界面的图片下载网址 soup=BeautifulSoup(content,'lxml') L2=soup.select('ul.clearfix>li') headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'} for i in range(len(L2)): str2=L2[i] url='http://pic.netbian.com'+str2.select('a')[0]['href'] content2=requests.get(url=url,headers=headers).text soup2=BeautifulSoup(content2,'lxml') L2[i]='http://pic.netbian.com'+soup2.select('div.photo-pic>a>img')[0]['src'] # 图片的下载网址 return L2 def Download(): id,path=get_info() # http://pic.netbian.com/e/search/result/index.php?page={}&searchid={} # 网址的格式 url2='http://pic.netbian.com/e/search/result/index.php?page={}&searchid={}' headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'} # 请求头 page2=int(input('请输入下载页数(注意不要超过总页数):')) # 下载页数 for page in range(page2): url=url2.format(page,id) content=requests.get(url=url,headers=headers) L2=bs(content=content.text) for j in range(len(L2)): content=requests.get(url=L2[j],headers=headers).content with open(file=path+'./{}-{}.jpg'.format(page+1,j),mode='wb') as f: f.write(content) print('-->已下载{}页'.format(page+1)) time.sleep(2) # 每下载一页,休眠2秒 if __name__ == '__main__': Download() 2.实现自动更换电脑壁纸

需要的python模块有win32api、win32con、win32gui、os、time 这个基本原理好像要应用到电脑注册表,我不是很懂,所以小编在这里就不清晰讲解了。 参考代码如下:

import win32api import win32con import win32gui import os import time 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) while True: Windows_img(path+'\{}'.format(L2[i])) time.sleep(10) # 设置壁纸更换间隔,这里为10秒,根据用户自身需要自己设置秒数 i += 1 if i==len(L2): # 如果是最后一张图片,则重新到第一张 i=0 if __name__ == '__main__': changeWallpaper()

代码中的这个时间可以自己根据自身需求进行设置。 在这里插入图片描述 最终运行结果:

运用Python爬虫下载彼岸壁纸

运用Python实现自动更换电脑壁纸

3.推荐两个比较好的电脑壁纸网址

另外,推荐读者两个比较好的壁纸网址:极简壁纸 、Desktop wallpapers,

4.总结

如果有读者对于Python爬虫爬取彼岸壁纸有问题的,可以在下面留言喔!当然,如果是后面的那个操作,不懂得话,希望读者查阅一些资料,小编对与win32api等也不是很懂。如果读者觉得小编得这篇文章写的还不错得哈!记得点赞!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3