24.API爬天氣預報資料
阿新 • • 發佈:2018-11-20
1.免費註冊API 地址: https://console.heweather.com/
必須要用IE瀏覽器開啟,註冊郵箱啟用,開啟控制檯,如圖:
認證key是訪問api的鑰匙
2.閱讀api說明開發文件
地址:https://www.heweather.com/documents/api/v5/url
可以看到免費的使用者只能訪問一個伺服器節點:
3.瞭解呼叫介面的方法
請求引數如下:
之後就需要拼接引數組成請求urlhttps://free-api.heweather.com/v5/weather?city=yourcity&key=yourkey
4.獲取城市ID程式碼
連結地址:https://cdn.heweather.com/china-city-list.txt
這裡資料是亂碼的,跟網頁編碼有關係。
5.獲取城市程式碼
# coding:utf-8 import requests url = 'https://cdn.heweather.com/china-city-list.txt' response = requests.get(url) data = response.text # print(data) cont = data.split('\n') # 去除頭部多餘標籤for i in range(6): cont.remove(cont[0]) # print(cont) #迴圈遍歷,輸出id for j in cont: print(j[2:14])
執行效果如下:
6.拼接url完善程式碼 # coding:utf-8 import requests import random,time url = 'https://cdn.heweather.com/china-city-list.txt' response = requests.get(url) data = response.text # print(data)cont = data.split('\n') # 去除頭部多餘標籤 for i in range(6): cont.remove(cont[0]) # print(cont) #迴圈遍歷,輸出id for j in cont: # print(j[2:14])= link_url= 'https://free-api.heweather.com/v5/weather?city={}'.format(j[2:14])+'&key=a3a4f84e9d68491e8b2e9d61c61df7c2' print(link_url) html = requests.get(link_url) time.sleep(random.randint(1,2)) print(html.text)
程式碼報錯:
是由於網站把這個藉口給關閉了,已經無法使用,但呼叫api介面的方式大概就是這樣。
模擬獲取請求引數拼接請求url去獲取資料,其實就和使用代理ip差不多。