前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用python每日更换“必应图片”为“桌面壁纸”

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

作者头像
程序员小猿
发布2021-01-19 11:55:09
1.8K0
发布2021-01-19 11:55:09
举报
文章被收录于专栏:程序IT圈程序IT圈

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

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

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

思路整理

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

2、保存图片到绝对路径

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

4、批处理壁纸自动切换

需要用到的模块如下:

代码语言:javascript
复制
import urllib.request
import requests
import os.path
import ctypes

第一、

获取图片地址

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

代码语言:javascript
复制
# 请求网页,跳转到最终 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

第二、

保存图片到本地

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

代码语言:javascript
复制
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

第三、

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

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

代码语言:javascript
复制
def set_img_as_wallpaper(filepath):
    ctypes.windll.user32.SystemParametersInfoW(20, 0, filepath, 0)

第四、

运行代码的main函数

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

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

第五、

批处理自动更换壁纸

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

代码语言:javascript
复制
@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-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档