[转]爬取高德天气所有城市的天气

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

复制代码

转自:https://www.cnblogs.com/renshaoqi/p/10420299.html

作者:菜鸟SSS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值