技术活,python抓取壁纸实现自动定时更换电脑壁纸!

技术活,python抓取壁纸实现自动定时更换电脑壁纸!

在上次弄得自动爬取壁纸的基础上,本人是一个喜欢经常换壁纸的小白,于是用强大的python编写了一款自动定时更换壁纸的代码,分享给有需要的人。

实现这个功能其实很简单,利用上一次贴抓到的壁纸存放的网络地址

技术活,python抓取壁纸实现自动定时更换电脑壁纸!

urls = ['http://joyoncloud.com/wallpaper/img_detail/wwide/big/','http://joyoncloud.com/wallpaper/img_detail/alphawcc/anime_girl/toplist1y/big/','http://joyoncloud.com/wallpaper/img_detail/wpup/big/']

利用xpath抓取的每个图片实际存放的地址

links = html.xpath('//a/@href')

然后存储到wall列表中

wall.append(urllink)

然后利用随机函数进行随机选取其中一个地址进行请求,下载

url = random.sample(wall,1)[0]res = session.get(url)
with open('link.jpg', 'wb') as f:
 f.write(res.content)

然后医用网上當到的设置壁纸的函数

def setWallpaperFrom(imagepath): k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\Desktop",0,win32con.KEY_SET_VALUE)
 win32api.RegSetValueEx(k, "WallpaperStyle", 0, win32con.REG_SZ, "2")
 win32api.RegSetValueEx(k, "TileWallpaper", 0, win32con.REG_SZ, "0")
 win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,imagepath, 1+2)

自动进行壁纸设置。

代码见:

import requests
from lxml import etree
import os
import time
import random
import win32api,win32con,win32gui
session = requests.Session()
# urls = ['http://joyoncloud.com/wallpaper/img_detail/jtix/big/','http://joyoncloud.com/wallpaper/img_detail/jtix/big2/','http://joyoncloud.com/wallpaper/img_detail/wwide/big/','http://joyoncloud.com/wallpaper/img_detail/alphawcc/anime_girl/toplist1y/big/','http://joyoncloud.com/wallpaper/img_detail/wpup/big/']
urls = ['http://joyoncloud.com/wallpaper/img_detail/wwide/big/','http://joyoncloud.com/wallpaper/img_detail/alphawcc/anime_girl/toplist1y/big/','http://joyoncloud.com/wallpaper/img_detail/wpup/big/']
wall = []
for url in urls:
 try:
 res = session.get(url).text
 html = etree.HTML(res)
 links = html.xpath('//a/@href')
 for link in links:
 try:
 # if 'wallhaven'in link:
 urllink = url + link
 wall.append(urllink)
 except:
 pass
 except:
 pass
def setWallpaperFrom(imagepath):
 k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\Desktop",0,win32con.KEY_SET_VALUE)
 win32api.RegSetValueEx(k, "WallpaperStyle", 0, win32con.REG_SZ, "2") #2拉伸适应桌面,0桌面居中
 win32api.RegSetValueEx(k, "TileWallpaper", 0, win32con.REG_SZ, "0")
 win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,imagepath, 1+2)
while True:
 try:
 url = random.sample(wall,1)[0]
 res = session.get(url)
 with open('link.jpg', 'wb') as f:
 f.write(res.content)
 setWallpaperFrom('link.jpg')
 os.remove('link.jpg')
 time.sleep(300)
 except:
 continue

技术活,python抓取壁纸实现自动定时更换电脑壁纸!

猜你喜欢

转载自blog.csdn.net/qq_41841569/article/details/82811188
今日推荐