酷炫!用Python把桌面变成实时更新的地球图片

如何拥有够酷炫逼格够高的桌面?本文教你轻松定制自己的桌面背景

(建议带上耳机听一下地球的声音)
最近疯狂迷恋地球卫星图和地球的卫星视频,看上面的视频简直极度舒适。不禁想把这种图片作为桌面背景图。这就产生抓取其背景图片作为桌面的想法。
思路其实很简单,三步搞定:
第一步:获取图片,下载储存
第二步:将图片设置成背景图
第三步:定时执行任务,更新地球的卫星图
第一步
首先找到自己想要获取的图片。
如果你喜欢小姐姐的话点这里:
如果你喜欢小哥哥的话点这里:
我这里直接上高清地球卫星图,选择Himawari-8,简直是卫星中的劳斯莱斯。
https://zhuanlan.zhihu.com/p/23025599
Himawari-8 (中文名:葵花-8)气象卫星于日本时间2014年10 月7 日使用三菱重工的H-IIA-25火箭成功发射。向日葵-8 是向日葵-7 的下一代气象卫星,设计寿命、气象观测能力都有大幅提高。

高清图链接:
http://himawari8.nict.go.jp/

真的太美了!!!而且在该网站还有实时视频可以观看,美到你原地高潮!
那接下来要做的就是抓包

高清地图卫星图位置:
http://himawari8-dl.nict.go.jp/himawari8/img/D531106/1d/550/ + GMT时间_0_0.png
那我们直接从网页获取图片:
def crawlWallpaper(cache_dir='download'): checkDir(cache_dir) url_base = 'http://himawari8-dl.nict.go.jp/himawari8/img/D531106/1d/550/' date = datetime.datetime.utcnow().strftime('%Y/%m/%d/')# 卫星图更新到网站上是有时延的 hour = str(int(datetime.datetime.utcnow().strftime('%H')) - 1).zfill(2) minute = str(datetime.datetime.utcnow().strftime('%M'))[0] + '0' second = '00' ext = '_0_0.png' picture_url = url_base + date + hour + minute + second + ext res = requests.get(picture_url)with open(os.path.join(cache_dir, 'cache_wallpaper.png'), 'wb') as f: f.write(res.content)
第二步
我们需要将下载的图片设置成电脑壁纸,这里主要使用win32api和win32gui这两个包,在python3环境下可以直接安装。
def setWallpaper(image_path): key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE) win32api.RegSetValueEx(key, "WallpaperStyle", 0, win32con.REG_SZ, "2") win32api.RegSetValueEx(key, "TileWallpaper", 0, win32con.REG_SZ, "0") win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,image_path, 1+2)
filepath = os.path.split(os.path.realpath(__file__))[0] + '\download'print(filepath)
image_name='cache_wallpaper.png'
image_path = filepath + '\\' + image_namesetWallpaper(image_path)
第三步
上述步骤都完成后直接设置电脑的定时任务就大功告成啦。
你可以每天定时更换背景桌面,如果你足够骚也可以把自动任务每隔时间设置成两小时!
接下来看一下成果吧~

cool~!
程序打包好,下载后直接设置定时任务就可以实现桌面自动更换
明天就更换一下你的桌面背景吧~
参考资料:
https://blog.csdn.net/ktpd_pro/article/details/56681710

源码下载

公众号后台回复关键词:卫星图

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注