运用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 timedef mk(keyword):  # 定义mk方法,用于创建文件夹path2='./{}'.format(keyword)  # 形成文件夹路径# 创建文件夹try:os.mkdir(path=path2)except Exception as e:print('error:{}'.format(e))return path2def 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:]  # searchidreturn id,pathdef 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).textsoup2=BeautifulSoup(content2,'lxml')L2[i]='http://pic.netbian.com'+soup2.select('div.photo-pic>a>img')[0]['src'] # 图片的下载网址return L2def 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).contentwith 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 timedef 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=0print(L2)while True:Windows_img(path+'\{}'.format(L2[i]))time.sleep(10)  # 设置壁纸更换间隔,这里为10秒,根据用户自身需要自己设置秒数i += 1if i==len(L2):  # 如果是最后一张图片,则重新到第一张i=0if __name__ == '__main__':changeWallpaper()

代码中的这个时间可以自己根据自身需求进行设置。

最终运行结果:

运用Python爬虫下载彼岸壁纸

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

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

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

4.总结

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

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

  1. 公众号点击图片后变化的互动效果怎么搞?教你用黑科技SVG排版技术提高图文互动性

    公众号点击图片后变化的互动效果怎么搞?教你用黑科技SVG排版技术提高图文互动性 今天看到央视新闻发送的一则关于'武汉解封'的软文,发现中间点击图片显示的效果挺有意思,随即网上查找了一下原来使用SVG互 ...

  2. 还在因常常忘记关电脑而烦恼吗?小编教你一招,一封邮件轻轻松松搞定

    原标题:运用Python爬虫实现远程控制电脑关机 在大一时,我们老师教过我们远程电脑关机,但那个代码比较多,而且我也没有实现.现在,通过这个寒假学习Python爬虫,实现这个过程好像变得非常简单了. ...

  3. click 点击图片不起作用_JavaScript 练手小案例:基于SVG的图片切换效果

    最近太忙了,自动来到rjxy后,不晓得怎么回事,忙的都没时间更博了. 昨天还有个同学跟我说,你好久没更新博客了.. 甚为惭愧~~ 正好12月来了,今天开一篇. 最近上课讲到了 SVG,不晓得同学们理解 ...

  4. php 鼠标点击图片放大,鼠标移入放大图片预览效果实现

    商城项目中,有鼠标移入图片放大的功能,研究一下实现 Image zoom body { display: flex; justify-content: center; align-items: cen ...

  5. jQuery实现点击图片放大,鼠标滑轮控制缩放

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  6. 鼠标点击测试_鼠标键盘如何检测故障,这边教您简单的测试

    沉迷,教您简单的测试鼠标故障. 有线键盘和鼠标的检测步骤: (1)将电脑关机,拔插对应的连接线. (2)移除所有除了键盘和鼠标之外的设备,然后重启电脑. (3)重启后,观察鼠标的灯是否有亮.点击滚动锁 ...

  7. 爬虫bing的图片,近千张,下载后自动更换为windows壁纸

    爬虫bing的图片,下载后自动更换为windows壁纸 由于百度的广告太多了,就用了一段时间bing.com搜索,发现每次打开背景大图都很漂亮,而且每次切换,于是就想把它下载下来,作为桌面背景,也是很 ...

  8. win7网络id和计算机名有灰色,小编为你演示win7系统网络id按钮是灰色点击不了的具体技巧...

    许多win7系统用户在工作中经常会遇到win7系统网络id按钮是灰色点击不的情况,比如近日有用户到本站反映说win7系统网络id按钮是灰色点击不的问题,但是却不知道要怎么解决win7系统网络id按钮是 ...

  9. 如何更换电脑背景图片?这样做很简单!

    案例:怎样把电脑背景图换成自己的照片? [我的电脑背景图片是系统自带的壁纸,不太好看,我想把它换成自己的照片.有没有小伙伴知道电脑怎么更换背景图片?在线求个简单的方法!] 在日常生活中,我们常常需要更 ...

最新文章

  1. Python 技术篇 - pip下载、安装慢解决方法,更改pip数据源实现秒速下载,配置阿里云国内镜像实例演示
  2. MySQL的简单使用-(一)
  3. Java内部类与静态内部类
  4. Python中import和from......import的区别
  5. HDU - 5920 Ugly Problem(Java大数+贪心)
  6. Red Hat Enterprise 5 server 上安装 memcached 的问题记录
  7. “生而强悍” vivo iQOO官宣3月1日发布
  8. 人民邮电报:区块链和工业互联网的融合 将产生叠加倍增效应
  9. 在Visual Studio中使用Visual Basic教程:创建一个控制台应用
  10. 常用塑料的种类以及用途:
  11. can和could的用法_can could 的区别与用法
  12. 全网最全 ECMAScript 攻略
  13. 输出一个由*组成的三角形图案_Python中实现个性图案的方案
  14. 数据库知识整理 - 并发控制(封锁、两段锁协议、意向锁)
  15. 【小程序】微信小程序如何获取用户微信openID?(已解决,完整代码实例)
  16. Typora 0.11.18版不能使用:This beta version of Typora is expired, please download and install a newe
  17. python读入图像是四维,需要将其转换为三维图像
  18. 图文介绍——NC使用笔记
  19. 新闻发布系统,SQLHelper重构
  20. 随记 | 我的 CSDN 两周年创作纪念日

热门文章

  1. OKR 与 KPI有何异同?各部门OKR实例【小bu】
  2. 饥荒MOD制作基础文档
  3. 适合圣诞送礼的蓝牙耳机有哪些?这几款音质好的蓝牙耳机值得入手
  4. html中如何强制图片不换行,css怎么强制div不换行?
  5. 【html+css+原生js实现炫酷照片展开效果-----女友相册的正确打开方式(详细)】
  6. 物联网行业现在好找工作吗?
  7. 一文了解汽车碰撞测试
  8. 爱迪生、云计算、大数据与海信
  9. Zabbix控制系统添加被监控的主机(步骤详细)
  10. Smartbi电子表格故事之用数据进行销售问题分析