튜토리얼에서 : [파이썬은 웹 크롤러 및 정보 추출] .MOOC 베이징 기술 연구소.
목표 : 크롤링 (50) 대학의 최고의 대학 예비 네트워크
코드하는 등 다음입니다 :
import requests
from bs4 import BeautifulSoup
import bs4
def getHTMLText(url):
try:
r = requests.get(url,timeout = 30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
print("产生异常")
return ""
def fillUnivList(ulist,html):
soup = BeautifulSoup(html,'html.parser')
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):
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)
printUnivList(uinfo,50) #20所大学
if __name__ == '__main__':
main()
코드 pycharm 년의 결과를 얻을 플러스 나중에 제대로 표시, 마지막 두 줄 아무 튜토리얼 없습니다. 참고 if __name__ == '__main__':
f
공간 뒤에 밑줄 또한이 부착되어 있습니다.
출력은 다음과 같습니다
排名 学校名称 总分
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
21 中南大学 50.3
22 北京师范大学 49.7
23 山东大学 49.1
23 厦门大学 49.1
25 吉林大学 48.9
26 大连理工大学 48.6
27 电子科技大学 48.4
28 湖南大学 48.1
29 苏州大学 47.3
30 西北工业大学 46.7
31 中国人民大学 46.1
32 华东师范大学 46.0
33 南京航空航天大学 44.8
34 对外经济贸易大学 44.7
35 南方科技大学 44.6
36 华东理工大学 44.5
37 重庆大学 44.4
38 南京理工大学 44.3
39 北京科技大学 43.9
40 东北大学 43.7
41 上海大学 43.4
42 北京邮电大学 42.9
42 上海财经大学 42.9
42 中国农业大学 42.9
45 武汉理工大学 42.8
46 北京交通大学 42.6
46 华中师范大学 42.6
48 西安电子科技大学 42.1
49 中央财经大学 41.8
50 北京化工大学 41.7