前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python ---超级。无敌之究极简单之获取台风经纬度

python ---超级。无敌之究极简单之获取台风经纬度

作者头像
sjw1998
发布2019-09-28 12:49:02
8960
发布2019-09-28 12:49:02
举报
文章被收录于专栏:孤独的S孤独的S

虽然现在台风已经过去了。不过假设你以后需要这些资料的时候,获取就很是方便了,最基础的requests就可以了。就算不懂爬虫的也可以做得到爬取。


首先进入到中国天气台风网,百度搜索台风就可以找到了。

然后按F12,刷新一下(这里是在谷歌浏览器的情况下)

然后点击Network,点击XHR。

这里你会发现有两个xml,点进去一看,正好就是我们需要的数据。

第一个taifeng1.xml就是今年(2019)年所有的台风code,名称,数据,等等资料。

点击headers,复制链接

代码如下:

代码语言:javascript
复制
import requests
url2 = 'http://typhoon.weather.com.cn/data/typhoonFlash/taifeng1.xml'
responese = requests.get(url2)
data = responese.text
print(data)

这样就得到了数据了紧接着再从这些数据中提取我们需要的数据。

代码语言:javascript
复制
import requests
url2 = 'http://typhoon.weather.com.cn/data/typhoonFlash/taifeng1.xml'
responese = requests.get(url2)
data = responese.text
import re
p = r'code="(.+)"  title="(.+)" data="(.+)" city'   #用正则表达式
results = re.findall(p,data)
print(results)                #这里是为了让你看看数据,可加可不加
with open('taifeng.txt','w') as f:     #将数据保存到文本文件中
    for i in results:
        f.write(str(list(i)))            
        f.write('\n')                   # 换行表示

结果就是这样

获取经纬度的做法也跟上面一样,不过这里我们可以获取全部经纬度。

首先分析一下经纬度的url的:

你会发现,只要修改一下后面的台风编号,就可以获取相应的台风经纬度数据,这样结合上面获取的到台风编号。

首先第一步提取台风的编号:

代码语言:javascript
复制
import requests
url2 = 'http://typhoon.weather.com.cn/data/typhoonFlash/taifeng1.xml'
responese = requests.get(url2)
data = responese.text
import re
p = r'code="(.+)"  title="(.+)" data="(.+)" city'
results = re.findall(p,data)
taifengcode = []
for i in range(len(results)):
    results[i] = list(results[i])
    taifengcode.append(results[i][0])    #把编号数据保存到一个新的list,

输出一下得到的编号:

接着拼接url:

代码语言:javascript
复制
for i in range(len(taifengcode)):
    url = 'http://typhoon.weather.com.cn/data/typhoonFlash/'
    print(taifengcode[i])
    url = url+str(taifengcode[i])+'.xml'   #url拼接
    print(url)
    data = requests.get(url).text
    patern = r'jd="(.+)" wd="(.+)" qy'
    result = re.findall(patern, data)
    print(result)
    txtname = str(taifengcode[i])+'.txt'    #将经纬度数据保存成相应台风编码的txt
    with open(txtname,'w') as f:
        for j in result:
            f.write(str(j))
            f.write('\n')

结果最后就生成了所有台风的经纬度的文本文件了


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 孤独的S 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档