吴裕雄--天生自然PYTHON爬虫:用API爬出天气预报信息

天气预报网址: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

原文地址:https://www.cnblogs.com/tszr/p/12186529.html