天气预报网址:https://id.heweather.com/,这个网站是需要注册获取一个个人认证后台密钥key的,并且每个人都有访问次数的限制,这个key就是访问API的钥匙。
这个key现在是要自己创建的,名称自己写,key值可以不写,创建的时候会自动生成。
接下来就是要阅读这个API文档。
包括上面怎么创建获取这个key这个API文档也有介绍的。
选择API这部分来阅读。
接口地址:
#获取城市列表 import requests url = 'https://cdn.heweather.com/china-city-list.txt' response = requests.get(url) response.encoding='utf8' data = response.text data_1 = data.split(' ') print(data_1)
for i in range(3): data_1.remove(data_1[0]) for item in data_1: print(item[0:11])
获取城市ID后,下一步就是调用接口获取数据。
#获取城市数据 import time import requests url = 'https://cdn.heweather.com/china-city-list.txt' response = requests.get(url) response.encoding='utf8' data = response.text data_1 = data.split(' ') for i in range(3): data_1.remove(data_1[0]) for item in data_1: url = 'https://free-api.heweather.net/s6/weather/forecast?location='+item[1:13]+'&key=232ab5d4b88e46bcb8bd8c06d49ebf91' strhtml = requests.get(url) time.sleep(3) print(strhtml.text)
可以看到数据是以json数据格式返回的。如果要将返回的数据解析出来可以使用for循环。
可以使用JSON在线结构化的工具观察数据结构,网址:http://www.json.org.cn/tools/JSONEditorOnline/index.htm
上图左边是原Json数据,右边显示的是它的保存数据的结构。
#获取城市数据 import os import time import requests url = 'https://cdn.heweather.com/china-city-list.txt' response = requests.get(url) response.encoding='utf8' data = response.text data_1 = data.split(' ') for i in range(3): data_1.remove(data_1[0]) temp = 1 for item in data_1: url = 'https://free-api.heweather.net/s6/weather/forecast?location='+item[1:13]+'&key=232ab5d4b88e46bcb8bd8c06d49ebf91' strhtml = requests.get(url) time.sleep(3) dic = strhtml.json() if(temp>3): #获取风向值 print(dic['HeWeather6'][0]['daily_forecast'][0]['wind_dir']) #获取最低气温 print(dic['HeWeather6'][0]['daily_forecast'][0]['tmp_min']) #获取最高气温 print(dic['HeWeather6'][0]['daily_forecast'][0]['tmp_max']) print('================') else: temp+=1