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


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')
代碼 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM