首先进入到中国天气台风网,百度搜索台风就可以找到了。
然后按F12,刷新一下(这里是在谷歌浏览器的情况下)
然后点击Network,点击XHR。
这里你会发现有两个xml,点进去一看,正好就是我们需要的数据。
第一个taifeng1.xml就是今年(2019)年所有的台风code,名称,数据,等等资料。
点击headers,复制链接
代码如下:
import requests url2 = 'http://typhoon.weather.com.cn/data/typhoonFlash/taifeng1.xml' responese = requests.get(url2) data = responese.text print(data)
这样就得到了数据了紧接着再从这些数据中提取我们需要的数据。
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的:
你会发现,只要修改一下后面的台风编号,就可以获取相应的台风经纬度数据,这样结合上面获取的到台风编号。
首先第一步提取台风的编号:
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:
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')
结果最后就生成了所有台风的经纬度的文本文件了
欢迎关注微信公众号:孤独的s