Python实用案例,Python脚本,Python实现每日更换“必应图片”为“桌面壁纸”
往期回顾
前言:
今天我们就利用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(20, 0, filepath, 0)
第四、运行代码的main函数
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的批处理文件,批处理内容如下:
@echo off
del g:\bingImg\*.jpg
python SetBingImgAsWallpaper.py
第二行在运行python脚本前先删除前一天下载的必应图片,这样就实现了旧壁纸的每日清理,最大限度节省了存储空间。第三行为运行上面的python脚本。
如何实现壁纸的自动切换呢,这里采用开机运行上面的批处理程序的方法。
复制上面创建的批处理文件,到下方目录下,右键-粘贴为快捷方式。这样就实现了开机启动批处理程序,自动清除和更新壁纸。
C:\User\yourname\AppData\Roaming\Microsoft\Windows\开始菜单\程序\启动每次开机都执行一遍更换壁纸的操作还不够完美的话,可以用Windows任务计划程序来添加任务,设置每天指定时间点运行批处理程序。
文章到这里就结束了,感谢你的观看,Python实用脚本系列,下篇文章分享Python 批量加水印
为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。
干货主要有:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
⑥ 两天的Python爬虫训练营直播权限
All done~详见个人简介或者私信获取完整源代码。。
Python实用案例,Python脚本,Python实现每日更换“必应图片”为“桌面壁纸”的更多相关文章
- Python实用案例,Python脚本,Python实现批量加水印
往期回顾 Python实现自动监测Github项目并打开网页 Python实现文件自动归类 Python实现帮你选择双色球号码 Python实现每日更换"必应图片"为"桌 ...
- Python实用案例,Python脚本,Python实现帮你选择双色球号码
往期回顾 Python实现自动监测Github项目并打开网页 Python实现文件自动归类 前言: 今天我们就利用python脚本实现帮你选择双色球号码.直接开整~ 开发工具: python版本: 3 ...
- Python实用案例,Python脚本,Python实现自动监测Github项目并打开网页
往期回顾 Python实现文件自动归类 前言: 今天我们就利用Python脚本实现Github项目的更新,提醒方式是邮箱.直接开整~ 项目地址: https://github.com/kenwoodj ...
- Python实用案例,Python脚本,Python实现文件自动归类
前言: 今天我们就利用Python脚本实现文件自动归类吧.直接开整~ 预备知识 这个脚本实现比较简单,我把涉及的知识点列了出来. 1.相对路径.绝对路径,绝对路径就是最完整的路径. 'D:/code/ ...
- python实现抓取必应图片设置桌面
源码参考https://github.com/vbirds/pyWallpaper,代码风格不错 本人只是将其适配到python3.5,并消除一些bug,源代码中桌面地址未使用绝对路径导致win10 ...
- 用c#每日更换“必应背景图片”为“桌面壁纸”
必应每天都会更换背景图片,都非常漂亮,有的时候还十分惊艳,同时还会根据每个地区的特色不同应用不同的图片. 下面用c#抓取必应每天的背景图片,并实现桌面壁纸的每天自动切换 实现思路 1.通过获取&quo ...
- python 实用案例 supervisord管理进程详解
Supervisor是由python语言编写,基于linux操作系统的一款服务器管理工具,用以监控服务器的运行,发现问题能立即自动预警及自动重启等功能.Supervisor类似于monit,monit ...
- 【Python爬虫案例学习】Python爬取天涯论坛评论
用到的包有requests - BeautSoup 我爬的是天涯论坛的财经论坛:'http://bbs.tianya.cn/list.jsp?item=develop' 它里面的其中的一个帖子的URL ...
- 【Python爬虫案例学习】python爬取淘宝里的手机报价并以价格排序
第一步: 先分析这个url,"?"后面的都是它的关键字,requests中get函数的关键字的参数是params,post函数的关键字参数是data, 关键字用字典的形式传进去,这 ...
随机推荐
- 循序渐进BootstrapVue,开发公司门户网站(2)--- 使用wow.js动画组件以及自定义的CSS样式处理动态效果
在我们开发的页面中,让页面有一些动画效果,可以让页面更加有吸引力,只要不是处理太过,一般人还是希望有一些动态效果,如滚动动画加载,悬停处理变化等效果,本篇随笔介绍使用wow.js动画组件以及自定义的C ...
- Hive和Spark分区策略
1.概述 离线数据处理生态系统包含许多关键任务,最大限度的提高数据管道基础设施的稳定性和效率是至关重要的.这边博客将分享Hive和Spark分区的各种策略,以最大限度的提高数据工程生态系统的稳定性和效 ...
- 01-ubuntu18.04安装docker脚本[含自动配置apt]
01-ubuntu18.04安装docker脚本[含自动配置apt] 脚本一键安装docker,并配置阿里云的docker镜像加速. #!/bin/bash #更新apt源为清华源 echo &quo ...
- 在Linux/Unix系统下用iconv命令处理文本文件中文乱码问题
iconv命令是运行于linux/unix平台的文件编码装换工具.当我们在linux/unix系统shell查看文本文件时,常常会发现文件的中文是乱码的,这是由于文本文件的编码与当前操作系统设置的编码 ...
- 22、oracle子查询
22.1.什么是子查询: 1.子查询就是在一条sql语句中嵌入select语句: 2.子查询可区分为关联子查询和非关联子查询,他们和主查询之间的执行顺序和关系是不同的: 22.2.关联子查询: 1.说 ...
- Docker:虚拟机挂起后,再启动docker容器连接失败
问题描述 当我们使用VMware15 Pro 创建虚拟机并运行Linux搭建的Docker时,挂起虚拟机后再次运行发现访问Docker容器失败. 解决方式 我们正常的挂起其实是:挂起客户机,博主尝试 ...
- swing设置观感
1.先获取当前系统支持的观感样式 1 UIManager.LookAndFellInfo[] infos = UIManager.getInstalledLookAndFeels(); 2 3 Str ...
- php+redis实现全页缓存系统
php redis 实现全页缓存系统之前的一个项目说的一个功能,需要在后台预先存入某个页面信息放到数据库,比如app的注册协议,用户协议,这种.然后在写成一个php页面,app在调用接口的时候访问这个 ...
- FastTunnel-内网穿透原理揭秘
之前写了一篇关于GVP开源项目FastTunnel的一篇介绍 <FastTunnel-开源内网穿透框架>,只简单介绍了使用方法,不少伙伴对其原理表示好奇,今天画抽空了一下其内部实现原理流程 ...
- 简单学习java内存马
看了雷石的内存马深入浅出,就心血来潮看了看,由于本人java贼菜就不介绍原理了,本文有关知识都贴链接吧 前置知识 本次主要看的是tomcat的内存马,所以前置知识有下列 1.tomcat结构,tomc ...