Python告诉你今天最冷的地方在哪里

第一时间获取 Python 技术干货!

阅读文本大概需要 7 分钟。

01

抓取目标

这次我们的目标是爬取全国最冷的 10 座城市。

首先打开目标网站 - 中国天气网。

「http://www.weather.com.cn/textFC/hb.shtml」

我们要爬取全国所有城市的最低温度,然后获取温度最低的 10 个城市,并绘制成饼状图。

02

准备工作

由于爬取的数据少,考虑使用「美味汤 - beautiful soup」的方式来爬取。

另外,最后需要根据数据生成饼状图,需要安装「pyecharts」及兼容库,不然控制台会报错。

注意:一般爬虫使用 lxml 去解析,但是由于中国天气网的「港澳台」页面源码中存在很多标签没有正确关闭,因此使用html5lib的方式去解析数据。

03

爬取思路

首先,我们可以看到全国分为华北、东北、华东、华中、华南、西北、西南、港澳台,8 个区域来展示天气数据。

我们首先需要去获取每一个区域下所有城市的天气数据,然后再对数据进行整理排序,写入到图形文件中。

04

代码实现

首先爬取「华北地区」城市的天气数据。

可以获取到下面的规律:

所有的「class=conMidtab」的 6 个 div 保存着华北地区所有城市,包含今天以内未来一周的天气数据。

每一个「class=conMidtab2」的 div 代表了一个省份的天气信息。

省份下面的城市天气数据,都包含 table 标签下。从第 3 个 tr 标签开始,是每一个城市的天气数据。

接下来,循环全国 8 个区域的列表,获取所有城市的名称和温度数据。

然后拿到所有城市和温度的列表数据后,就可以对数据按温度进行「升序」排列。

最后,将数据写入到饼状图中。

05

爬取结果

最后打开生成的饼状图,就能很直观的查看到今天温度最低的 10 个城市。

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181217G1BS2H00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券