【Python爬虫】2023中国大学排名爬取
- 项目思路
-
- 一、对项目进行分析
- 二、编写函数
- 三、测试
- 四、代码
项目思路
本代码大多参考北京理工大学嵩天老师代码,略作修改,学习其编码思想,嵩天老师中国慕课上的Python课非常不错,深入浅出,很系统
1 一个项目的编写,需要先列框架,然后再填入细节代码,将一个项目分成块,使用不同的函数
2 要符合规范,使用main函数进行调用
根据链接获取大学排名并将排名屏幕输出
一、对项目进行分析
功能描述:
输入:大学排名URL链接
输出:大学排名的屏幕输出(排名,学校名称,总分)
技术路线:requests-bs4
定向爬虫:仅对输入URL进行爬取,不扩展爬取
爬虫可行性分析:
1 确定想要的信息是否写在了源代码中,因为某些信息是通过JS动态加载的,无法使用requests-bs4获取
2 确定网站是否有robots协议(该网站无robots协议,可以爬取)
对程序结构进行初步设计:
步骤一:从网络上获取大学排名网页内容
步骤二:提取网页内容到合适的数据结构
步骤三:利用数据结构展示并输出结果
将每个步骤定义为一个函数,使程序结构清晰,可读性更好
二、编写函数
1 因为使用到网络请求,先导入库
2 因为还未对函数的内部进行实现,因此先写三个出函数的定义
3 写主函数
4 写各个函数细代码
三、测试
1 调试运行测试
2 代码优化
3 可将url中的年份换成其他,例如2020等进行尝试
四、代码
import requests
from bs4 import BeautifulSoup
import bs4
def getHTMLText(url):
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text