[Python] 抓取必应每日一图,设置为桌面壁纸
来源:互联网 发布:云尚数据 编辑:程序博客网 时间:2024/05/17 02:20
在Windows 10 64位系统环境下,使用 Python 3.6 进行图片抓取和设置壁纸操作。
其中,图片链接 https://area.sinaapp.com/bingImg/ 为 Bing 每日一图的地址,解析可以获得图片文件的地址,下载即可。之后使用 ctypes 工具进行壁纸设置。颇为简单。结合 AHK (auto hot key) 可以用快捷按键的方式运行脚本更新壁纸。颇为方便。 :)
SetBingImgAsWallpaper.py
"""程序功能:抓取必应每日一图,设置为桌面壁纸"""import urllib.requestimport requests import os.pathimport ctypesdef save_img(img_url,dirname): #保存图片到磁盘文件夹dirname中 try: if not os.path.exists(dirname): print ('文件夹',dirname,'不存在,重新建立') #os.mkdir(dirname) os.makedirs(dirname) #获得图片文件名,包括后缀 basename = os.path.basename(img_url) #拼接目录与文件名,得到图片路径 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# 请求网页,跳转到最终 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# 设置图片绝对路径 filepath 所指向的图片为壁纸def set_img_as_wallpaper(filepath): ctypes.windll.user32.SystemParametersInfoW(20, 0, filepath, 0)def main(): dirname = "E:\\Pictures\\bingImg" # 图片要被保存在的位置 img_url = get_img_url() filepath = save_img(img_url, dirname) # 图片文件的的路径 set_img_as_wallpaper(filepath)main()
MyScript.ahk
;Ctrl + Alt + P 快捷键运行SetBingImgAsWallpaper.py脚本设置壁纸为Bing每日一图(需要在联网状态运行)^!P::Run python SetBingImgAsWallpaper.pyReturn
阅读全文