当前位置: 首页 > news >正文

爬虫与数据分析结合案例

案例背景  

在数据科学与计算领域,爬虫技术与数据分析的结合是常见且强大的应用方式。本案例以“中国大学排名”为例,演示如何从高三网爬取大学排名数据,并通过数据预处理、分析和可视化,最终生成直观的统计图表(柱形图和饼图)。  

任务流程  

数据爬取  


目标:爬取高三网(`http://www.bspider.top/gaosan/`)中的中国大学排名数据,包括以下字段:  
学校名称  
总分  
全国排名  
星级排名  
办学层级  
工具:Python 的 `requests` 和 `BeautifulSoup` 库。  
结果:数据保存为 `school.csv` 文件。  

数据预处理 


爬取后的数据可能存在缺失值(如“总分”列),需通过 `pandas` 进行清洗:  

方法 1:删除空值行  

df.dropna(subset=['总分'], inplace=True)

方法 2:指定值填充空值  

df['总分'].fillna("未知", inplace=True)

方法 3:均值/中位数填充  

mean_score = df['总分'].mean()
df['总分'].fillna(mean_score, inplace=True)

median_score = df['总分'].median()
df['总分'].fillna(median_score, inplace=True)

数据分析 


数据包含 **820 所大学**,按星级排名分布如下:  
星级                 学校数量                            占比  
8 星                  8 所                                      1%     
7 星                16 所                                       2%     
6 星                 36 所                                   4.5%   
5 星                 59 所                                   7.2%  
4 星               103 所                                  12.5%  
3 星               190 所                                    23.1%  
2 星               148 所                                      18%   
1 星               260 所                                     31.7% 

数据可视化  

柱形图:星级排名分布 
使用 `Seaborn` 绘制柱形图,直观展示各星级学校的数量差异:  
import seaborn as sns
sns.barplot(x='星级', y='数量', data=df_star)
plt.title("中国大学星级排名分布")
plt.show()

饼图:星级占比
通过饼图展示比例分布:  
plt.pie(df_star['占比'], labels=df_star['星级'], autopct='%1.1f%%')
plt.title("中国大学星级占比")
plt.show()

总结  


1. 爬虫技术:通过 `requests` 获取网页数据,`BeautifulSoup` 解析 HTML 结构。  
2. 数据清洗:`pandas` 提供灵活的缺失值处理方式(删除、填充)。  
3. 可视化工具:`Seaborn` 和 `Matplotlib` 快速生成统计图表。  


http://www.lryc.cn/news/618056.html

相关文章:

  • C++11的历史和统一的初始化列表
  • 数据填报是什么?数据填报工具有哪些?
  • 蓝桥杯算法之搜索章 - 4
  • 【单板硬件开发】关于复位电路的理解
  • 掌握do-while循环:从语法到运用
  • 18.5 BERT评估指标终极指南:HuggingFace实战提升文本分类效果
  • 【LeetCode刷题集】--排序(三)
  • 基于FPGA的热电偶测温数据采集系统,替代NI的产品(二)总体设计方案
  • 用 Flink SQL 和 Paimon 打造实时数仓:深度解析与实践指南
  • 疫情可视化:基孔肯雅热风险地图实战解析
  • 自建Web应用防火墙(WAF)
  • 深入剖析 C++ STL 中的 std::list 容器
  • 机器学习-决策树(DecisionTree)
  • conda一键配置python开发环境
  • .NET Core MVC中CSHTML
  • 在 Rocky Linux 9.2 上使用 dnf 安装 Docker 全流程详解
  • 嵌入式硬件中AI硬件设计方法与技巧
  • 跨平台、低延迟、可嵌入:实时音视频技术在 AI 控制系统中的进化之路
  • day23|前端学习三件套
  • JavaScript Const的基础使用
  • 爬虫与数据分析实战
  • 爬虫和数据分析相结合案例
  • 介绍一下jQuery的AJAX异步请求
  • android 换肤框架详解2-LayoutInflater源码解析
  • 【Linux文件操作】文件操作系统调用
  • 机器学习之DBSCAN
  • Linux中DNS系统搭建与配置指南(配实验步骤与注释)
  • GO学习记录三
  • 【网络运维】Linux:常见 Web 服务器
  • 对自己的 app 进行分析, 诊断,审视