1. 程式人生 > >爬取高德天氣所有城市的天氣

爬取高德天氣所有城市的天氣

req mage ons play 圖文 clas xhr list col

1、打開網站:https://www.amap.com/

2、按F12進入開發者界面,如下圖

技術分享圖片

3、點擊Network--XHR--刷新,如下圖

技術分享圖片

4、找到存放天氣的文件

技術分享圖片

技術分享圖片

如何獲取圖中adcode,因為adcode為獲取每個城市天氣的標識。

①復制adcode在上個圖中的左下方文件中的Preview找到對應城市的adcode

技術分享圖片

②上圖文件數據格式是json的格式,可以打開網站:json.cn 可以有效的查看

技術分享圖片

5、分析完瀏覽器數據結構後,進行代碼的編寫

技術分享圖片
import requests
import json

# 查找adcode

# 爬取城市adcode的url地址
base_url 
= https://www.amap.com/service/cityList?version=201922117 # 發起請求 response_city = requests.get(base_url) # 將服務器響應回來的數據轉換成json格式 json_data = response_city.json() json_data2 = json_data[data][cityByLetter] # 存儲城市的信息 city_list = [] for key,value in json_data2.items(): for city in value: city_list.append(city) # 遍歷城市信息 獲取所有城市的天氣
for i, city in enumerate(city_list): i += 1 # 將獲取到的adcode存到adcode變量中 adcode = city[adcode] city_name = city[name] # 定義爬取天氣的url地址 weather_url = fhttps://www.amap.com/service/weather?adcode={adcode} response_weather = requests.get(weather_url) json_data3 = response_weather.json() # 獲取json_data3字典中的天氣值 weather
= json_data3.get(data).get(data)[0].get(live).get(weather_name) limit = json_data3.get(data).get(data)[0].get(live).get(temperature) print(i, city_name, weather, limit+C)
代碼

爬取高德天氣所有城市的天氣