爬虫实例:爬取中国大学排名 Top20

每日一句:世界上没有一条道路是重复的,也没有一个人生是能够替代的。——余华《活着》
在学习对 HTML 页面信息的提取后,下面以实例来学习爬取网页。
首先找到需要爬取的网页:https://www.shanghairanking.cn/,再验证 robots 协议,如下:https://www.shanghairanking.cn/robots.txt

可以看到该网站并未对爬虫做出相关限制。
对大学排名网页爬取的要求为:
1.输入:大学排名 URL 链接。
2.输出:大学排名信息的输出(排名,大学名称,总分)。
3.技术路线:Requests+bs4。
4.定向爬虫:仅对输入 URL 进行爬取,不扩展爬取。
简单步骤:
1.从网络上获得大学排名的网页内容。
2.提取网页内容中信息到合适的数据结构。
3.利用数据结构展示并输出结果。
其中,最重要的便是在网页的代码中找到相关的标签并且进行分析,比如下图中,我们首先用快捷键 Ctrl+F 查找某个大学的名字,这里小编查找的是清华大学,按 Enter 键后会自动搜索到相关位置。找到大学名称后,在对相关标签进行分析,比如与大学名称相关的标签为 a,与大学地址相关的标签为 td 标签,再向上找到某一所大学信息相关的标签,即 tr,在 tr 标签内,包含了清华大学相关的所有内容;再向上找到包含所有学校信息的标签,即 tbody 标签。

实例源代码:
复制代码
运行结果:

版权声明: 本文为 InfoQ 作者【Bob】的原创文章。
原文链接:【http://xie.infoq.cn/article/0e9de9fa5d2495cb21f3865e3】。文章转载请联系作者。
评论