在数据驱动的时代,掌握爬虫技术获取数据、运用数据分析工具处理数据并通过可视化呈现结果,已成为一项重要技能。本文以 "中国大学排名爬取与分析" 为例,带你走进爬虫与数据分析的世界,了解相关基础知识与实操流程。
一、爬虫基础:从网页获取数据
爬虫,简单来说就是自动从网页上抓取信息的程序。它就像一只 "蜘蛛",在网络上爬行,按照一定规则提取我们需要的数据。
1. 核心库介绍
在 Python 中,实现爬虫常用的库有requests
和BeautifulSoup
:
requests
:用于向网页服务器发送请求,获取网页的 HTML 内容。可以理解为模拟我们在浏览器地址栏输入网址并回车的动作。BeautifulSoup
:用于解析获取到的 HTML 内容,将复杂的 HTML 结构转化为易于处理的对象,方便我们提取其中的特定数据。
2. 爬取中国大学排名的流程
以爬取高三网中国大学排名为例,具体步骤如下:
- 发送请求 :使用
requests.get()
函数向目标网址(2021中国的大学排名一览表_高三网)发送请求,获取网页的 HTML 文本。 - 解析数据 :通过
BeautifulSoup
解析 HTML,定位到包含大学排名信息的表格,遍历表格的每一行,提取学校名称、总分、全国排名、星级排名、办学层级等数据。 - 保存数据 :将提取到的数据通过
csv
库写入 CSV 文件,方便后续分析。
二、数据预处理:让数据更 "干净"
爬取到的数据往往存在一些问题,比如缺失值,这会影响后续分析结果的准确性,因此需要进行数据预处理。
1. 常用工具
pandas
是 Python 中处理数据的强大工具,尤其在处理缺失值方面非常便捷。
2. 处理缺失值的方法
以 "总分" 列存在空数据为例,有以下几种处理方式:
- 删除含空字段的行 :使用
dropna()
函数,直接删除包含空值的行,适用于空值较少的情况。 - 用指定内容替换 :通过
fillna()
函数,将空值替换为 "暂无分数信息" 等指定内容,使数据更易理解。 - 用均值替换 :计算 "总分" 列的均值,再用
fillna()
将空值替换为均值,适用于数据分布较均匀的情况。 - 用中位数替换:计算 "总分" 列的中位数,并用其替换空值,适用于存在极端值的数据。
三、数据可视化:让数据 "说话"
数据可视化能将复杂的数据以直观的图形展示出来,帮助我们快速发现规律。常用的可视化图表有柱形图和饼图。
1. 柱形图
柱形图适合比较不同类别数据的大小。以不同星级学校的数量为例:
- 使用
matplotlib.pyplot
库,设置 x 轴为星级(8 星、7 星等),y 轴为对应星级的学校数量。 - 通过
bar()
函数绘制垂直柱形图,或barh()
函数绘制水平柱形图,再添加标题、设置中文字体等,使图表更清晰。
2. 饼图
饼图适合展示各部分数据占总体的比例。例如不同星级学校数量占总学校数(820 所)的比例:
- 用
pie()
函数,将各星级学校的占比作为数据,设置对应的标签(星级),可直观呈现 1 星学校占比最高(约 31.7%)、8 星学校占比最低(约 1%)等分布情况。
通过以上步骤,我们完成了从数据爬取、预处理到可视化的全流程。这一过程不仅能帮助我们获取所需信息,更能让我们通过数据洞察背后的规律。无论是学习研究还是实际应用,爬虫与数据分析的结合都能发挥巨大作用,值得我们深入探索。