python⽓象卫星云图解析_02_中央⽓象台
简述
最近发现⽓象数据很适合进⾏Python分步完成抓取练习,检索各类资源对⽐发现中央⽓象台数据相对完整,类型也较为丰富,故计划针对不同类型分别练习。抓取数据请勿存档,商⽤请联系官⽅。
爬取对象
抓取中央⽓象台卫星云图
使⽤包
import time, os #定时抓取
import requests
from bs4 import BeautifulSoup
import datetime #精确时间
实现步骤
1、抓取对象分析
通过分析图⽚列表得知其图⽚均按时间在播放器下端以⼩图形式展⽰,故不⽤进⾏翻页操作。
图⽚列表
观察⼩图布局,得知图⽚与时间⼀⼀对应,ok,⽂件名也可以获取了,初步分析完成。
单个图⽚
2、抓取与本地保存核⼼代码
for image_li in list_soup.find_all('li'):
image_name = image_li.find('p', attrs={'class': 'time'}).getText().replace(':','_')
img_small = image_li.find('p', attrs={'class': 'img'}).find('img')["data-original"] #⼩图
img_localhost = folder + '\\' + image_name + '.jpg'
img_req = (img_small, timeout=20)
with open(img_localhost, 'wb') as f:
f.write(t)
3、优化
继续分析页⾯中内容,发觉播放器中有放⼤图⽚功能,恩,要爬就爬⾼清图。
对⽐⼩图URL与播放器中放⼤图⽚URL布局,得知存取⽬录不⼀致。
更新图⽚路径
img_small = image_li.find('p', attrs={'class': 'img'}).find('img')["data-original"] #⼩图
img_big = place('small/','')
本次爬取对象数据定时更新,故增加定时执⾏功能
def re_exe(cmd, inc = 60):
while True:
os.system(cmd);
main()
time.sleep(inc)
# N秒 执⾏⼀次
re_exe("echo %time%", 1800)
activexobject控件下载增加程序稳定性,判断⽬录是否存在、⽂件是否已下载
if ists(folder) == False:
os.makedirs(folder)
#如果⽂件不存在,且⼤⼩不为 0 字节,开始下载另存
if os.path.isfile(img_localhost) == False or size(img_localhost) == 0:
将其他感兴趣图集整理处理
代码软件论坛#下载清单
DOWNLOAD_URL = [("能见度","seaplatform1","/publish/sea/seaplatform1.html"),("风","hourly-winds","/publish/observations/hourly-winds.html"),("⽓温","hourly-
temperature","/publish/observations/hourly-temperature.html"),("⼩时降⾬量","hourly-precipitation","/publish/observations/hourly-precipitation.html"),("卫星云图","fy2",
"/publish/satellite/fy2.htm")]
编程python简单程序特斯拉事件股票跌了多少for title, folder, url in DOWNLOAD_URL:
气象python零基础入门教程#print(title, folder, url)
html = download_page(url)
总结
ignore的用法搭配本轮⽰例主要复习了图⽚抓取,完善⽂件夹、⽂件处理,针对动态(更新较为频繁)⽹站设置⾃动抓取任务,完成后感觉本地连播此类图⽚还是挺有意思的……
完整代码
Paste_Image.png
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论