python爬虫难度排行

编程入门 行业动态 更新时间:2024-10-12 12:32:01

python<a href=https://www.elefans.com/category/jswz/34/1770264.html style=爬虫难度排行"/>

python爬虫难度排行

总述

爬取中国天气网中各省份,各城市的最低气温,并且对爬取的数据进行排序以及数据可视化。

分析html结构

映入眼帘的是一个名为conMidtab2的div盒子,这个盒子里放了一张表格,表格正文tbody里放了十多

个表行tr,每个tr中有几个标准单元格td。下面的div盒子结构完全一致,不再分析,结合下图:

我们知道,一个tbody中的第3个tr中的第1个td与第2个td中 ,分别存放着省份信息与第1个城市信息;

第4个tr中的第1个td中存放着第2个城市的信息;注意第1个城市的特殊情况!

requests & BeautifulSoup

1.requests

requests 是基于urllib的开源HTTP库

我们首先定制header,模拟浏览器访问网站

键入 r = requests.get('')获取一个网页,键入 r.text 获取网页内容

2.BeautifulSoup

BeautifulSoup是一个从HTML或者XML中提取数据的python库。

键入conMidtab = soup.find('div', class_='conMidtab')

搜索第一个带有 conMidtab 属性的div标签。

键入 conMidtab2_list = conMidtab.find_all('div', class_='conMidtab2')

搜索所有带有conMidtab2属性的div标签

获取省份与城市

通过for循环遍历BeautifulSoup获取到的conMidtab2_list数据

键入 tr_list = x.find_all('tr')[2:] 查找第三个及其以后的tr

再对tr_list进行遍历,这里按照上面分析分为两类。,即第3个tr中第1个td是省份,第2个td是城市,

第8个td是最低气温;第4个tr及其以后tr中第1个td是城市;

排序

使用sorted对爬取得到的各省份各城市的最低气温进行排序

键入 SORTED_TEMPERATURE_LIST = sorted(TEMPERATURE_LIST, key=lambda x: (int(x['min'])))

为了展示需要,这里我只选择前20低的数据进行数据可视化

TOP20_TEMPERATURE_LIST = SORTED_TEMPERATURE_LIST[0:20]

数据可视化

选取排序后的20个数据进行数据可视化,我采取柱状图

bar = Bar('主标题','副标题')

bar.add("tem", 横坐标值, 纵坐标值, is_more_utils=True )

键入 bar.show_config()

bar.render()

返回一个html在你的文件夹里

点击即可看见图表

源码

更多推荐

python爬虫难度排行

本文发布于:2024-02-25 19:31:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1700068.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   难度   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!