【Python】定时获取卫星地球图像作为电脑壁纸

news/2024/11/22 17:46:14/

虽然网上关于这个的教程不少,但是写在这里,就当作自己的学习记录吧。

开发工具:Python 3.7

环境:win10

图像来源:日本himawari-8气象卫星官网

思路:利用爬虫从官网抓取图像,然后设置为电脑壁纸,十分钟更新一次。

首先,打开官网分析一波,抓包


可以找出图片的地址链接

分析一下链接的构成规律可知,从D531106/1d/550/后面开始,都是对应的时间日期,使用的是格林威治标准时间,与北京时间相差8小时。

知道了图片的链接,剩下就可以直接爬取了,代码如下:

from datetime import datetime,timedelta
import requestsdef imgDown():urlBase="https://himawari8-dl.nict.go.jp/himawari8/img/D531106/1d/550/"today=str((datetime.utcnow()-timedelta(minutes=60)).strftime("%Y/%m/%d/"))hour=str((datetime.utcnow()-timedelta(minutes=60)).strftime("%H").zfill(2))second=str((datetime.utcnow()-timedelta(minutes=60)).strftime("%M")[0]+"0")minute="00"urlEnd="_0_0.png"url=urlBase+today+hour+second+minute+urlEndimg=requests.get(url)print(url)with open("earth.png","wb") as file:file.write(img.content)

由于在爬取的时候,使用最新时间,爬到的是No Image,所以我减去了一个小时,避免爬取到错误图片,爬取结果如下。

爬取结果

获取了图像,接下来就是设置为电脑桌面了。
调用pywin32模块,这里imgpath应该为图片的绝对路径,如果没有win32模块需要单独安装。

def setWallpper(imgpath):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, imgpath, win32con.SPIF_SENDWININICHANGE)

效果图:
在这里插入图片描述

完整代码:

from datetime import datetime,timedelta
import requests
import os
import win32api,win32con,win32guidef imgDown():urlBase="https://himawari8-dl.nict.go.jp/himawari8/img/D531106/1d/550/"today=str((datetime.utcnow()-timedelta(minutes=60)).strftime("%Y/%m/%d/"))hour=str((datetime.utcnow()-timedelta(minutes=60)).strftime("%H").zfill(2))second=str((datetime.utcnow()-timedelta(minutes=60)).strftime("%M")[0]+"0")minute="00"urlEnd="_0_0.png"url=urlBase+today+hour+second+minute+urlEndimg=requests.get(url)print(url)with open("earth.png","wb") as file:file.write(img.content)def setWallpper(imagepath):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)if __name__=='__main__':imgDown()path=os.getcwd()print(path)setWallpper(path+"\\earth.png")

自此,从爬取图像到设置壁纸,都完成了,接下来就是设置定时爬取的问题了。
可以使用windows的定时任务

也可以while循环+sleep, 设置10分钟爬取一次。官网十分钟更新一次图像,所以爬多了没意义。


http://www.ppmy.cn/news/335314.html

相关文章

python写一个地球同步卫星图动态壁纸(第三部分)

———————————————————————————————— 前序: 系统:Windows 10 IDE:PyCharm Python:3.7.4 python写一个地球同步卫星图动态壁纸(第一部分) 第一部分主要是下载地球同步卫星图片…

为你的 Linux 桌面设置一张实时的地球照片

厌倦了看同样的桌面背景了么?这里有一个(可能是)世界上最棒的东西。 ‘Himawaripy’ 是一个 Python 3 小脚本,它会抓取由日本 Himawari 8 气象卫星拍摄的接近实时的地球照片,并将它设置成你的桌面背景。 安装完成后,你可以将它设置成每 10 分…

android 3d地球,动态3D我的地球app

动态3D我的地球app是一款非常不错的3D立体视觉动态壁纸软件,喜欢科幻风格的小伙伴们可以使用该软件设置属于自己的地球壁纸,支持不同视觉效果,动态的地球,从月球看地球等,手指滑动屏幕可以转动角度,喜欢的可…

【Python】自制地球壁纸软件

关于如何获取并设置卫星地球壁纸请参考上一篇文章【Python】定时获取卫星地球图像作为电脑壁纸 本文主要讲解如何开发GUI界面并打包为exe程序发布。 开发环境:Python3 主要模块:PyQt5和pyinstaller 使用平台: win10 不多说,上代…

python做壁纸_用Python做地球壁纸

本文主要讲解如何开发GUI界面并打包为exe程序发布。 开发环境:Python3 主要模块:PyQt5和pyinstaller 使用平台: win10 不多说,上代码: import sys, os if hasattr(sys, frozen): os.environ[PATH] sys._MEIPASS &quo…

免费的实时地球卫星图片壁纸Downlink for mac

卫星同步实景地球壁纸软件Downlink良心推荐。Downlink mac版可以全天观察阳光和天气在地球上的移动,从不同的地球视角中进行选择,从热带地区的近景到美国大陆,再到来自3个不同的地球同步卫星的绝对令人惊叹的全盘图像,多种地球壁纸…

已知一个整数,如何判断这个整数是无符号的?

前言 记录6月11日,肯哥在群里面分享的一个问题。说实话,看到题目想了半天没明白。一看答案,才发现,这题真的简单。 题目 已知一个整数,如何判断这个整数是无符号的? 题解 (1)因为我的…

hp6960无法连接计算机,支持多种打印方式 惠普OfficeJet Pro 6960评测

【PConline 专业评测】当办公打印设备起初用于我们日常办公文印时,激光打印产品是我们最早接触的一类设备。但随着科技的发展及用户的需求,打印市场也随之千变万化,激光打印产品已经不再是我们日常办公不可或缺的打印产品,追求质量…