台风的历史最佳路径数据集可以从中国气象局热带气旋资料中心下载,但是每年3/4月份左右才会发布上一年的数据,如果需要使用当年的数据,可以爬取中央气象台台风网(http://typhoon.nmc.cn/web.html)的数据。同时,在日常业务工作中,可能需要获取中央气象台的台风预报数据,进行一些其他处理。本篇介绍如何爬取中央气象台台风网的正在发展的台风数据,包括台风的历史实况分析和预报数据,以2021年的“查帕卡”和“烟花”为例。

中央气象台台风网,图中为2106烟花和2107查帕克的信息(2021年7月20日20点)

一 确认当前正在发展的台风

使用Chrome浏览器开发者工具解析当前网页的元素。首先根据当前默认列表(默认当年的台风列表)的URL,爬取得到我们需要的台风id,台风名和编号以及是否是当前正在发展的台风。

代码说明:


# 获取目前存在的西北太平洋台风,包括未编号但是给出路径预报的
def get_current_tc_list(url):html_obj = requests.get(url, headers=headers, verify=False).textdata = json.loads(re.match(".*?({.*}).*", html_obj, re.S).group(1))['typhoonList']item_list = []for v in data:state = v[7] # stop or startif state == "start": # 只保留当前台风item = {}item['id']      = v[0]item['tc_num']  = '%s' % v[4]   # 编号item['name_cn'] = '%s' % v[2]   # 中文名item['name_en'] = '%s' % v[1]   # 英文名item['dec']     = '%s' % v[6]   # 名字含义item_list.append(item)return item_list
t = int(round(time.time() * 1000)) # 13位时间戳
url = 'http://typhoon.nmc.cn/weatherservice/typhoon/jsons/list_default?t=%s&callback=typhoon_jsons_list_default'%t
item_list = get_current_tc_list(url)

二 爬取目标台风的历史实况和预报信息

根据上个步骤得到的台风id等信息,爬取目标台风的URL,然后解析得到台风的历史位置和强度等信息和未来的预报信息。

代码说明

#获取目标台风
def get_tc_info(item):#根据获取的时间戳和台风id,确定要请求的URL,得到typhoon列表t = int(round(time.time() * 1000)) # 13位时间戳# callback: typhoon_jsons_view_ + 台风的idurl = 'http://typhoon.nmc.cn/weatherservice/typhoon/jsons/view_%s?t=%s&callback=typhoon_jsons_view_%s' % (item['id'], t, item['id'])html_obj = requests.get(url, headers=headers, verify=False).textdata = json.loads(re.match(".*?({.*}).*", html_obj, re.S).group(1))['typhoon']# 建立字典保存信息info_dicts = { 'tc_num':item['tc_num'],   #编号'name_cn':item['name_cn'], #中文名'name_en':item['name_en'], #英文名'dateUTC':[],    #日期 UTC'dateCST':[],    #日期 CST'vmax':[],       #最大风速 m/s'grade':[],      #等级'latTC':[],      #位置deg'lonTC':[],'mslp':[],    #中心气压hPa'attr':[]}   #属性,预报forecast,实况analysis#先遍历所有实况for v in data[8]:info_dicts['dateUTC'].append(v[1])info_dicts['dateCST'].append(date_pred(v[1], 8)) # UTC to CSTinfo_dicts['vmax'].append(v[7])info_dicts['grade'].append(get_type(v[3]))info_dicts['lonTC'].append(v[4])info_dicts['latTC'].append(v[5])info_dicts['mslp'].append(v[6])info_dicts['attr'].append('analysis')#最新预报时刻dateUTC0 = info_dicts['dateUTC'][-1]#获取最新的一次预报BABJ_list = data[8][-1][11]['BABJ']for i in range(len(BABJ_list)):pred_hour = int(BABJ_list[i][0]) #预报时效,hourdateUTC_pred = date_pred(dateUTC0, pred_hour)info_dicts['dateUTC'].append(dateUTC_pred)info_dicts['dateCST'].append(date_pred(dateUTC_pred, 8))info_dicts['vmax'].append(BABJ_list[i][5])info_dicts['grade'].append(get_type(BABJ_list[i][7]))info_dicts['lonTC'].append(BABJ_list[i][2])info_dicts['latTC'].append(BABJ_list[i][3])info_dicts['mslp'].append(BABJ_list[i][4])info_dicts['attr'].append('forecast')tc_info = pd.DataFrame(info_dicts)return tc_info

三 获取到的台风信息

2021-07-020:20左右爬取到的台风信息如下,以烟花为例,analysis表示历史实况分析,forecast表示预报数据。

扫描下方二维码关注气海同途公号,回复“台风路径”关键字即可获取。

python爬取中央气象台台风网当前台风实况和预报数据相关推荐

  1. 大数据项目开发hadoop集群搭建 python爬取前程无忧招聘网信息以及进行数据分析和数据可视化

    大数据项目开发实训报告 一.Hadoop环境搭建 1: jdk的安装 1):在linux系统下的opt目录下创建software 和 module 两个目录 2):利用filezilla工具将 jdk ...

  2. 用python输出所有的玫瑰花数_用Python爬取WordPress官网所有插件

    转自丘壑博客,转载注明出处 前言 只要是用WordPress的人或多或少都会装几个插件,可以用来丰富扩展WordPress的各种功能.围绕WordPress平台的插件和主题已经建立了一个独特的经济生态 ...

  3. python爬房源信息_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

  4. python爬取千图网_python爬取lol官网英雄图片代码

    python爬取lol官网英雄图片代码可以帮助用户对英雄联盟官网平台的皮肤图片进行抓取,有很多喜欢lol的玩家们想要官方的英雄图片当作自己的背景或者头像,可以使用这款软件为你爬取图片资源,操作很简单, ...

  5. Python爬取不羞涩网小姐姐图片——BeautifulSoup应用

    引言 今年提倡原地过年,相信很多朋友都没有回家过年,像我就被迫留在深圳过年了,无聊之余只能去看看电影爬爬山.今天给大家带来一个打发无聊时光的案例,用Python爬取不羞涩网小姐姐图片,并保存到本地,老 ...

  6. python 爬取淘宝网课

    python爬取淘宝网课,打开web控制台,发现有个链接可以下载到对应的内容,下载的格式是m3u8,用文本打开里面是许多.ts链接,当然百度后得知可以直接下个vlc然后下载,但是还是想用python试 ...

  7. 使用python爬取斗图网的图片

    使用python爬取斗图网的图片 以下是代码部分: # -*- coding: utf-8 -*- """ Created on Wed Apr 14 14:41:42 ...

  8. python爬取链家网的房屋数据

    python爬取链家网的房屋数据 爬取内容 爬取源网站 爬取内容 爬取思路 爬取的数据 代码 获取房屋url 获取房屋具体信息 爬取内容 爬取源网站 北京二手房 https://bj.lianjia. ...

  9. 用Python爬取彼岸图网图片

     用Python爬取彼岸图网图片 *使用了  四个模块 import time import requests from lxml import etree import os 没有的话自行百度安装. ...

  10. python爬取去哪儿网酒店信息

    python爬取去哪儿网酒店信息 利用selenium+python爬取去哪儿网酒店信息,获取酒店名称.酒店地址.第一条评论.评论数.最低价格等信息,写入excel表. 1.观察网页结构 浏览器地址栏 ...

最新文章

  1. Android单元测试设置
  2. 设置弹性框项目之间距离的更好方法
  3. 【Kotlin】Kotlin 语言集合中的高阶函数详解 ( 数据类 data class | maxBy | minBy | filter | map | any | count | find )
  4. mybatis学习(38):动态sql-foreach
  5. 【HDU5091】Beam Cannon,扫描线+线段树
  6. 道路设计基础知识,让你一秒变大师
  7. 安兔兔软件测试手机准确吗,安兔兔验机准吗? 安兔兔验机中心新版使用评测
  8. AVR单片机(ATmega128)单片机运算乘除法大约所需时间
  9. 电脑怎么设置扬声器播放麦克风的声音
  10. [渝粤教育] 西南科技大学 财务会计 在线考试复习资料(1)
  11. spyder缩进快捷键
  12. 10个小故事,思考大数据
  13. 将文件复制到临时文件夹
  14. 禁止查看网页源文件的代码
  15. Windows环境下安装OpenCV-Python 完美解决:找不到指定模块(dll缺失)
  16. matlab标定不是棋盘格,matlab 标定提取棋盘格角点调整参数
  17. 用mac系统怎么连宽带连接服务器吗,苹果电脑怎么连宽带_MAC系统怎么连接有线宽带-win7之家...
  18. Single-Stage Semantic Segmentation from Image Labels笔记
  19. JSON(生成和解析)
  20. Windows系统制作安装

热门文章

  1. 重复独立事件,伯努利概型 (概统1)
  2. ubuntu14.04 安装以太网网络卡驱动
  3. Win10真正好用之处
  4. JS验证邮箱 身份证 VISA 卡[转]
  5. 利用JavaScript完成页面定时弹出广告
  6. 特殊符号(包括数字和字母)
  7. 好的vue框架-模板
  8. 推荐系统系列——经典推荐算法
  9. 一文读懂微生物扩增子16s测序
  10. 分享一个空手反套白狼的骚操作