python热爱者

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

2018-09-22  本文已影响1人  48e0a32026ae

在上次弄得自动爬取壁纸的基础上,本人是一个喜欢经常换壁纸的小白,于是用强大的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

上一篇下一篇

猜你喜欢

热点阅读