爬取高德天氣所有城市的天氣
阿新 • • 發佈:2019-02-22
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 = f‘https://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‘)
爬取高德天氣所有城市的天氣