用python每日更换“必应图片”为“桌面壁纸”

程序IT圈

共 2160字,需浏览 5分钟

 · 2020-04-02

f34b9719d8432291c76c76172e28ac77.webp


不少同学都知道,必应每天都会更新壁纸,都十分漂亮,有时候还十分惊艳,同时还会根据每个地区的特色应用不同的壁纸。


那么,如何让自己的电脑每天同步必应每日图片作为桌面背景呢?


下面用python脚本抓取必应每日图片,并实现桌面壁纸的每天自动切换。


思路整理  


1、通过网页,获取图片地址

2、保存图片到绝对路径

3、设置该绝对路径所指向的图片为壁纸

4、批处理壁纸自动切换


需要用到的模块如下:


import urllib.request
import requests
import os.path
import ctypes


第一、

获取图片地址 


这个函数主要通过requests模块,根据必应的网页地址,获取到当日图片的最终img地址。


# 请求网页,跳转到最终 img 地址
def get_img_url(raw_img_url="https://area.sinaapp.com/bingImg/"):
    r = requests.get(raw_img_url)
    img_url = r.url  # 得到图片文件的网址
    print('img_url:', img_url)
    return img_url



第二、

保存图片到本地 


这个函数的作用就是把图片保存到你自己设置的一个目录下,并返回当前目录的绝对地址。


def save_img(img_url, dirname):
    # 保存图片到磁盘文件夹dirname中
    try:
        if not os.path.exists(dirname):
            print('文件夹', dirname, '不存在,重新建立')
            # os.mkdir(dirname)
            os.makedirs(dirname)
        # 获得图片文件名,包括后缀
        basename = "bing.jpg"
        # 拼接目录与文件名,得到图片路径
        filepath = os.path.join(dirname, basename)
        # 下载图片,并保存到文件夹中
        urllib.request.urlretrieve(img_url, filepath)
    except IOError as e:
        print('文件操作失败', e)
    except Exception as e:
        print('错误 :', e)
    print("Save", filepath, "successfully!")

    return filepath


第三、

设置该绝对路径所指向的图片为壁纸 


通过之前获得的图片所在的绝对路径,把该图片设置为桌面壁纸。


def set_img_as_wallpaper(filepath):
    ctypes.windll.user32.SystemParametersInfoW(200, filepath, 0)


第四、

运行代码的main函数 


def main():
    dirname = "D:\\bingImg"  # 图片要被保存在的位置
    img_url = get_img_url()
    filepath = save_img(img_url, dirname)  # 图片文件的路径
    set_img_as_wallpaper(filepath)


运行效果(此时,可以回看一下文章首图中的左上角那张图片)
84e634f86326e3f8d8b3a88cf4007d2e.webp


第五、

批处理自动更换壁纸 


此时,可以在python脚本的同一目录下创建名为py_bingying.bat的批处理文件,批处理内容如下:


@echo off
del g:\bingImg\*.jpg
python SetBingImgAsWallpaper.py


第二行在运行python脚本前先删除前一天下载的必应图片,这样就实现了旧壁纸的每日清理,最大限度节省了存储空间。第三行为运行上面的python脚本。
如何实现壁纸的自动切换呢,这里采用开机运行上面的批处理程序的方法。
复制上面创建的批处理文件,到
下方目录下,右键-粘贴为快捷方式。这样就实现了开机启动批处理程序,自动清除和更新壁纸。
C:\User\yourname\AppData\Roaming\Microsoft\Windows\开始菜单\程序\启动
每次开机都执行一遍更换壁纸的操作还不够完美的话,可以用Windows任务计划程序来添加任务,设置每天指定时间点运行批处理程序。
获取全部源码,链接:必应壁纸自动更新:链接:https://pan.baidu.com/s/16GsSbfyLICRvX3o2OnkjkA提取码:7x48

-END-


往期精彩

Python 四大主流 Web 编程框架

为什么你现在必须迁移到Python 3?

推荐一些能提高生产力的 Python 库

Excel VS Python 谁更适合数据分析?

硬核!30 张图解 HTTP 常见的面试题

10个省时间的 PyCharm 技巧

END

关注【程序IT圈】,更多的Python好文输出

8ae7af1f7f511c70c140f9fbb2509b3c.webp
浏览 54
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报