python爬取图片设置壁纸
哈喽,大家好呀,我是滑稽君。本期我们将教大家如何使用python爬取喜欢的壁纸,并且把它设置成我们的电脑桌面。
首先明确思路我们需要爬虫的知识来爬取我们喜欢的照片,其次我们需要用到python修改电脑背景的知识,最后我们希望隔一段时间背景可以自动更换。
我们需要用到BeautifulSoup、requests、win32、os和time库。大家记得提前安装一下。老样子缺少哪个库在cmd中pip即可。
视频讲解:
源代码:
from bs4 import BeautifulSoupimport requests#定时换壁纸,完整版,隔6秒换一次,函数——————1import osimport win32apiimport win32conimport win32guiimport time#爬取图片部分URL = "https://wallhaven.cc/"html = requests.get(URL).textsoup = BeautifulSoup(html, 'lxml')img_ul = soup.find_all('div', {"class": "feat-row"})for ul in img_ul: imgs = ul.find_all('img') for img in imgs: url = img['src'] r = requests.get(url, stream=True) image_name = url.split('/')[-1] with open('./img/%s' % image_name, 'wb') as f:thon for chunk in r.iter_content(chunk_size=128): f.write(chunk) print('Saved %s' % image_name) def xyy(path): #打开注册表 reg_key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE) #2:拉伸 0:居中 6:适应 10:填充 win32api.RegSetValueEx(reg_key, "WallpaperStyle", 0, win32con.REG_SZ, "2") #SPIF_SENDWININICHANGE 这个参数意思为立即生效 while True: for i in path: win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, i, win32con.SPIF_SENDWININICHANGE) time.sleep(6)#path = ["C:\\Users\\86157\\Desktop\\tpp\\play_3.bmp","C:\\Users\\86157\\Desktop\\tpp\\nike.png"]path_list = []rootdir = (r"C:\Users\86157\img")list = os.listdir(rootdir) # 列出文件夹下所有的目录与文件for i in range(0, len(list)): com_path = os.path.join(rootdir, list[i]) #print(com_path) if os.path.isfile(com_path): path_list.append(com_path) if os.path.isdir(com_path): path_list.extend(get_all_path(com_path)) #print(path_list)xyy(path_list)
我们的代码分为三个部分。
第一:爬取我们喜欢的图片,我们需要先获取壁纸网站的url,然后需要对图片进行处理,即用爬虫捕捉我们的图片并放入一个文件夹中。
第二:我们需要通过python把我们爬取到的图片设置成桌面背景。设置每个图片在桌面停留的时间,滑稽君这里设置了6秒。
第三:遍历文件夹,把文件下图片的路径传给第二步,因为我们第二步向系统提交图片时需要用到我们的图片路径。
运行完之后的效果就是,我们刚才爬取的壁纸会被替换成桌面背景,每六秒换一次。以此循环。效果滑稽君在视频中为大家展示了。关于代码的一些问题滑稽君都注释出来了,更详细的解答在我们的视频讲解里面,有不明白的地方可以看视频,或者私信滑稽君。欢迎讨论。
❂ END
提出问题,解决问题 ,想要实现什么功能就去尝试。那样可以极大的提升我们解决问题的能力。
吾愿奔月而去,即使出现偏差,也将置身繁星之中。