DEMO1-今日天气信息采集-接口

本文介绍了如何使用Python的requests库从指定接口获取北京天气数据,并详细解析了返回的JSON格式数据,提取了今日天气信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 一般情况采集数据源经过分析会有两种情况:一、数据从接口中返回,二、数据从html页面中解析。今天我们先来看第一种情况。
  • 首先安装我们采集信息需要用到的包requests
    pip install requests
    
  • 采集天气的接口如下,这个接口是从百度上查询到的,最后的city=北京表示告诉接口要查询北京的天气,大家可以切换成自己的城市比如city=淄博
    http://wthrcdn.etouch.cn/weather_mini?city=北京
    
  • 接口返回的数据格式如下,我们可以看到接口返回的json格式的数据。其中status表示接口返回的状态码、desc表示接口相应描述、data是本次相应的数据。相应数据主要包括:city城市名称、yesterday昨日天气信息、forecast预测天气信息、其他信息。通过分析我们发下我们需要的今天的天气信息是预测信息的第一天。
    {
    	"data": {
    		"yesterday": {
    			"date": "3日星期日",
    			"high": "高温 20℃",
    			"fx": "西南风",
    			"low": "低温 7℃",
    			"fl": "<![CDATA[2级]]>",
    			"type": "晴"
    		},
    		"city": "北京",
    		"forecast": [{
    			"date": "4日星期一",
    			"high": "高温 22℃",
    			"fengli": "<![CDATA[2级]]>",
    			"low": "低温 9℃",
    			"fengxiang": "西南风",
    			"type": "多云"
    		}, {
    			"date": "5日星期二",
    			"high": "高温 25℃",
    			"fengli": "<![CDATA[2级]]>",
    			"low": "低温 9℃",
    			"fengxiang": "东北风",
    			"type": "晴"
    		}, {
    			"date": "6日星期三",
    			"high": "高温 15℃",
    			"fengli": "<![CDATA[2级]]>",
    			"low": "低温 7℃",
    			"fengxiang": "东南风",
    			"type": "多云"
    		}, {
    			"date": "7日星期四",
    			"high": "高温 23℃",
    			"fengli": "<![CDATA[2级]]>",
    			"low": "低温 5℃",
    			"fengxiang": "南风",
    			"type": "多云"
    		}, {
    			"date": "8日星期五",
    			"high": "高温 24℃",
    			"fengli": "<![CDATA[2级]]>",
    			"low": "低温 9℃",
    			"fengxiang": "西南风",
    			"type": "晴"
    		}],
    		"ganmao": "感冒易发期,外出请适当调整衣物,注意补充水分。",
    		"wendu": "18"
    	},
    	"status": 1000,
    	"desc": "OK"
    }
    
  • 数据采集,上代码
    # 导入 requests 包
    import requests
    
    # 请求接口获取到响应数据
    response = requests.get("http://wthrcdn.etouch.cn/weather_mini?city=北京")
    
    #返回的数据是json格式的字符串, 解析json对象后才可以方便的使用[]访问数据
    response_json = response.json()
    
    # 获取到天气数据
    data = response_json['data']
    
    # 获取到城市名称
    city = data['city']
    
    # 获取今天的天气信息,通过前面分析今天天气信息是预测数组里面的第一个
    today_weather = data['forecast'][0]
    
    # 打印采集到的数据信息
    print(city +" " + today_weather['date'] +" " +today_weather['type'] + " " + today_weather['low'] + " - " + today_weather['high'])
    ## 运行结果:北京 4日星期一 多云 低温 9℃ - 高温 22℃
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mmx_man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值