新手入门,不喜勿喷,这篇文章的内容其实也是在中国大学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并执行函数……
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看一下效果吧!