结果:
实际操作:
就是到网站上下载几张图片并生成GIF文件罢了,没什么好说的。要不同的图片就把urll地址换一下就可以了
可执行文件:
代码:
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()))