- 一般情况采集数据源经过分析会有两种情况:一、数据从接口中返回,二、数据从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℃
DEMO1-今日天气信息采集-接口
最新推荐文章于 2025-06-17 15:56:35 发布