爬虫日记-最好大学排名实例
实例爬取
import requests
from bs4 import BeautifulSoup
import bs4
def getHTMLText(url): # 这个函数的作用是就是获取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,'html.parser')
print(soup)
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 printUnivList(ulist,num): # 用来把提取出来的数据展示出来
print('{:^10}\t{:^6}\t{:^18}'.format('排名','学校名称','总分'))
for i in range(num):
u=ulist[i]
print('{:^10}\t{:^6}\t{:^18}'.format(u[0],u[1],u[2]))
def main(): # 主函数,调用,用来传入参数,和调用其他函数
uinfo =[]
url='http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html'
html=getHTMLText(url)
fillUnivList(uinfo,html)
printUnivList(uinfo,20)
main()
排名 学校名称 总分
1 清华大学 94.6
2 北京大学 76.5
3 浙江大学 72.9
4 上海交通大学 72.1
5 复旦大学 65.6
6 中国科学技术大学 60.9
7 华中科技大学 58.9
7 南京大学 58.9
9 中山大学 58.2
10 哈尔滨工业大学 56.7
11 北京航空航天大学 56.3
12 武汉大学 56.2
13 同济大学 55.7
14 西安交通大学 55.0
15 四川大学 54.4
16 北京理工大学 54.0
17 东南大学 53.6
18 南开大学 52.8
19 天津大学 52.3
20 华南理工大学 52.0