概述
为什么会突然写这样的一个脚本呢?因为今天同事突然说到:宇宙这么大,我们人这么渺小,那么在别人眼里我们的地球是什么样子的?问到这个话题我想很多人都会想起地球仪或者一系列的电视剧!蓝白相间是吧!所以今天实时获取地球卫星图,设置为咱们的电脑桌面,这样就可以无时无刻看到它的变化!废话不多说,让我们愉快地开始吧~
开搞
开发工具
Python版本:3.6.4
相关模块:
requests模块;
pywin32模块;
安装这些模块就不用多说了吧!直接pip就可以了!每次怕新手不会,所以多说一些哈!
原理
首先,我们需要爬取当前的地球卫星图,然后再把爬取到的地球卫星图设为桌面背景,最后实现每隔一段时间重复以上两个步骤。
OK,理清思路就可以开始干了~
这里,我们选择从日本himawari-8气象卫星官网爬取地球卫星图:
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 + extres = requests.get(picture_url)with open(os.path.join(cache_dir, 'cache_wallpaper.png'), 'wb') as f:f.write(res.content)
OK,现在我们已经爬取到了算是“最新”的地球卫星图了,接下来就是调用pywin32模块实现自动换电脑壁纸功能了。具体而言,代码实现如下:
'''换壁纸''' def setWallPaper(imagepath='download/cache_wallpaper.png'):keyex = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, win32con.KEY_SET_VALUE)win32api.RegSetValueEx(keyex, "WallpaperStyle", 0, win32con.REG_SZ, "0")win32api.RegSetValueEx(keyex, "TileWallpaper", 0, win32con.REG_SZ, "0")win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, imagepath, win32con.SPIF_SENDWININICHANGE)
最后,如何让电脑每隔十分钟就运行一次上面的程序呢?
写个死循环?那好像有点蠢?
其实我们只需要在windows上设置个定时任务就可以啦~下面以win10为例说明设置方式:
① 打开任务计划程序
注:win+R键,然后输入taskschd.msc回车运行就行了~
② 创建任务
③ 新建触发器
④ 新建操作
最后点击确定就OK啦~
注:把写好.py文件后缀改成.pyw就得到earchWallpaper.pyw文件了
效果
是真的很美,希望能有机会能亲眼看一下这样的地球,就像宇航员那样!说不定上去一趟还能治好我的脱发问题!
需要完整代码,教程的
①兼职交流,行业咨询、大佬在线专业解答
②Python开发环境安装教程
③Python400集自学视频
④软件开发常用词汇
⑤Python学习路线图
⑥3000多本Python电子书
如果你用得到的话可以直接拿走,点击领取。不方便点链接的加群:948351247