爬取Bing背景图设为壁纸

爬取Bing背景图设为壁纸

记录一个简单的爬虫项目,爬取Bing搜索的背景图并设为自己的电脑壁纸。
原帖在此

由于时间跨度有点久,网站源码里的背景图url格式有所改变,对代码做了少许修改后就又能跑通了,代码如下

# **************
# coding=utf-8
# by ivor
# 设置bing.com背景为壁纸

import re
import requests
import pythoncom
from win32com.shell import shell, shellcon

class MyPaper:

    def __init__(self):
        self.image = r"C:\paper.jpg"
        self.url = r'https://cn.bing.com/'

    def getDeskComObject(self):
        self.g_desk = None
        if not self.g_desk:
            self.g_desk = pythoncom.CoCreateInstance(shell.CLSID_ActiveDesktop, \
                                                     None, pythoncom.CLSCTX_INPROC_SERVER, \
                                                     shell.IID_IActiveDesktop)
        return self.g_desk

    def setWallPaper(self):
        self.desktop = self.getDeskComObject()
        if self.desktop:
            self.desktop.SetWallpaper(self.image, 0)
            self.desktop.ApplyChanges(shellcon.AD_APPLY_ALL)

    def addUrlLink(self, lnk):
        self.desktop = self.getDeskComObject()
        self.desktop.AddUrl(0, lnk, 0, 0)

    def imgDownload(self):
        r = requests.get(self.url).content
        pattern = re.compile(r'href="(.*jpg)?')
        imgUrl = re.findall(pattern, r.decode(encoding="utf-8"))
        print(imgUrl)
        imgData = requests.get(self.url + imgUrl[0]).content
        with open(self.image, "wb") as file:
            file.write(imgData)


setPaper = MyPaper()
setPaper.imgDownload()
setPaper.setWallPaper()

效果如下
在这里插入图片描述
在这里插入图片描述
在知乎上刷到了一个回答,答主的想法是给系统设置一个定时任务,每天执行上述代码,那样壁纸就会随着bing搜索背景图片的更新而更新
链接在此

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值