你家大学上榜了吗?--Python3爬取中国最好大学排名

引子:学习最高效的方式应该是建立在实战的基础上,这两天在‘中国MOOC大学’上学习了北京理工大学嵩天老师的《Python网络爬虫与信息提取》课程,收获颇丰,嵩老师在课堂上讲解了‘中国大学排名爬取案例’,涉及的知识点相对比较简单,非常适合入门级的小伙伴上手。本文便是在嵩老师的课堂内容基础上稍稍改进了一些地方,算是一个比较完整的小项目,接下来请各位看官慢慢欣赏:
image

当然在学习Python的道路上肯定会困难,没有好的学习资料,怎么去学习呢?  学习Python中有不明白推荐加入交流群号:790921645 群里有志同道合的小伙伴,互帮互助,  群里有不错的视频学习教程和PDF!

1. 网站分析

首先,我打开网站 http://www.zuihaodaxue.com/zuihaodaxuepaiming2018.html ,网站显示的是2018年国内排名前600的高校信息。鼠标右键单击,选择“查看网页源代码”,然后下拉,直到找到大学排名信息那一部分,如下图所示:

img

网页源代码

简单分析可以发现,大学排名信息在位置为的版块中,其下面的每一个小版块代表每一个大学的基本信息,而下面的每一个则分别表示大学的排名、学校名称、所在省市等详细信息。

2. 网页爬取与解析

接下来,我们将借助requests库和bs4库来爬取并解析网页源码,代码如下:

你家大学上榜了吗?--Python3爬取中国最好大学排名_第1张图片

导入库

你家大学上榜了吗?--Python3爬取中国最好大学排名_第2张图片

自定义getHTMLText函数

你家大学上榜了吗?--Python3爬取中国最好大学排名_第3张图片

自定义fillUnivList函数

你家大学上榜了吗?--Python3爬取中国最好大学排名_第4张图片

自定义saveUnivList函数

你家大学上榜了吗?--Python3爬取中国最好大学排名_第5张图片

主函数

上面一共自定义了三个函数getHTMLTest、fillUnivList、saveUnivList,这三个函数的主要功能分别是获取并返回网页的源代码、解析并提取网页源代码中的有效信息、将提取的信息保存到txt文档中。以上代码运行完成后会在当前的文件夹中生成名为ulist3.txt的文档,文档中生成的内容如下:

你家大学上榜了吗?--Python3爬取中国最好大学排名_第6张图片

ulist3.txt文档信息

上图截取的是文档中排名前20名高校的基本信息,至此说明我们成功的爬取了我们想要的网站信息。但是,为了更加直观并有趣的展示我们的爬取结果,我们可以进一步将结果制作成一个词云图,接下来看第三部分:

3. 用词云图展示我们爬取的结果

你家大学上榜了吗?--Python3爬取中国最好大学排名_第7张图片

词云图展示程序

如上所示,在绘制词云图时,我们需要用到wordcloud库中的WordCloud函数,首先我们需要将需要做成词云图的词库读取并赋值给words变量,然后用WordCloud函数做图,需要注意的是,函数中的参数font_path是计算机中存在字体的文件路径,需要根据自己的电脑上的具体路径更改。以上程序运行完后,将得到如下结果:

你家大学上榜了吗?--Python3爬取中国最好大学排名_第8张图片

词云图

可以发现,在全国高校前600名中,北京、江苏、辽宁、山东这四个地方的高校数量相对较多。那么,问题来了,你在图中找到了自己家乡的省市吗?

结语:网络爬虫知识博大精深,我也仅仅是刚刚入门的小白,这一篇文章算是作为一次学习的巩固,同时也是想借此鼓励自己继续钻研下去。前路漫漫,愿世界不曾辜负每一个努力进取的人,如果有小伙伴对本文的内容比较感兴趣或想一起学习的欢迎留言哦!

你可能感兴趣的:(Python)