国内大学排名如何?用Python爬取中国大学排名

Carnelian ·
更新时间:2024-09-21
· 540 次阅读

国内大学排名如何?用Python爬取中国大学排名准备阶段需要的库robots协议上代码代码框架*获取url信息*解析信息*输出数据*主函数结果 准备阶段

新手入门,不喜勿喷,这篇文章的内容其实也是在中国大学MOOC 北理工 嵩天老师的课程基础上完成。由于大学排名有众多不同的影响因素,根据指标不同,有很多排名,我们就选取最好大学网的排名。

需要的库 import requests from bs4 import BeautifulSoup import bs4 robots协议

如下图,显然,这个网站没有robots协议,也就是说,我们可以认为它是允许所有的爬虫进行爬取任何内容的。

上代码 代码框架 def getHTMLtext(url): try: return r.text except: return "" def fillunivlist(ulist,html): return "" def printlist(ulist,num): return "" def main(): return "" main()

大概就是这样,我们定义四个函数。
其大体作用分别为获取url信息;解析信息并填写在列表中;输出信息;提供url并执行函数……

*获取url信息 def getHTMLtext(url): try: r=requests.get(url,timeout=30) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: return "" *解析信息 def fillunivlist(ulist,html): soup=BeautifulSoup(html,"lxml") for tr in soup.find('tbody').children: if isinstance(tr,bs4.element.Tag): tds=tr('td') ulist.append([tds[0].string,tds[1].string,tds[3].string]) *输出数据 def printlist(ulist,num): tplt="{0:^10}\t{1:{3}^10}\t{2:^10}" print(tplt.format("排名","学校名称","总分",chr(12288))) for i in range(num): u=ulist[i] print(tplt.format(u[0],u[1],u[2],chr(12288))) *主函数 def main(): uinfo=[] url='http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html' html=getHTMLtext(url) fillunivlist(uinfo,html) printlist(uinfo,20) main() 结果

由于数据比较多,我们就取前20看一下效果吧!
在这里插入图片描述在这里插入图片描述


作者:偷得浮华



用python 中国大学 大学 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号