番外-Python下载中央气象台卫星云图后保存为gif

该脚本使用Python的requests和BeautifulSoup库下载指定网页的图片,存储到指定目录。然后利用PIL和imageio库将图片按时间顺序排序并生成GIF动态图。每30分钟运行一次,检查新图片并避免重复下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结果:

在这里插入图片描述

实际操作:

就是到网站上下载几张图片并生成GIF文件罢了,没什么好说的。要不同的图片就把urll地址换一下就可以了
在这里插入图片描述

可执行文件:

CSDN下载地址

在这里插入图片描述
在这里插入图片描述

代码:

1,获取图片:

import time
import requests
from bs4 import BeautifulSoup
import os

# 创建一个目录用于存储下载的图片
if not os.path.exists('cloudAtlas'):
	os.makedirs('cloudAtlas')

# 开始一个无限循环
while True:

	# 下载网页HTML内容
	response = requests.get("http://www.nmc.cn/publish/satellite/FY4A-true-color.htm")
	html = response.text

	# 解析HTML内容
	soup = BeautifulSoup(html, 'html.parser')

	# 查找包含图片链接的所有div元素
	divs = soup.select('div.time')

	# 对于每一个div元素,提取图片链接并下载图片
	for div in divs:
		url = div['data-img']

		# 提取图片的名称
		image_name = url.split("/")[-1].split("?")[0]

		# 检查图片是否已经存在
		if image_name in os.listdir('cloudAtlas'):
			print(f"Image {image_name} already exists. Skipping download.")
			continue

		# 下载图片
		response = requests.get(url)
		img_data = response.content

		# 保存图片
		with open(os.path.join('cloudAtlas', image_name), 'wb') as handler:
			handler.write(img_data)
		print(f"Image downloaded and saved as {image_name}")

	# 休眠半小时(30分钟*60秒)
	time.sleep(30 * 60)

检查图片:检查有无无效图片(如果有,就去掉)

2,生成GIF

from PIL import Image
import os
import imageio

# 获取所有图片
image_files = os.listdir('cloudAtlas')

# 按照时间顺序(从早到晚)排序图片
image_files.sort()

# 读取并添加到列表中
images = [Image.open(os.path.join('cloudAtlas', img_file)) for img_file in image_files]

# 保存为gif
images[0].save('output.gif', save_all=True, append_images=images[1:], loop=0)

# 播放gif
reader = imageio.get_reader('output.gif')
for i, im in enumerate(reader):
    print('Mean of frame %i is %1.1f' % (i, im.mean()))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木卯彳亍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值