爬虫与数据分析结合案例

发布于:2025-08-13 ⋅ 阅读:(18) ⋅ 点赞:(0)

案例背景  

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

任务流程  

数据爬取  


目标:爬取高三网(`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` 快速生成统计图表。  


 


网站公告

今日签到

点亮在社区的每一天
去签到