美文网首页python热爱者
技术活,python抓取壁纸实现自动定时更换电脑壁纸!

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

作者: 48e0a32026ae | 来源:发表于2018-09-22 11:46 被阅读1次

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

        本文链接:https://www.haomeiwen.com/subject/dpotoftx.html