1.条件准备
1.1、PyCharm
1.2、最好大学网排名:(http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html)
2.整体思路
2.1 利用requests获得网页信息
2.2 引用BeautifulSoup 库获取“排名”,“学校名称”,“省市”,“总分”,并按顺序排列
3.代码如下
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# "r.text“则为错
except():
return ""
def fillUlist(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[2].string, tds[3].string])
def printUlist(Ulist, num):#Ulist值为上一个函数的结果
print("{:^10}\t{}\t{:^10}".format("排名", "学校名称", "总分")) #\t代表4个空格
for i in range(num):
u = Ulist[i]
print("{:^10}\t{:^6}\t{:^10}".format(u[0], u[1], u[1]))
def main():
Uinfo = []
url = "http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html"
html = getHtmlText(url)#即第一个函数的返回值
fillUlist(Uinfo, html)
printUlist(Uinfo, 100)
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
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
51 暨南大学 广东 41.5
52 东华大学 上海 41.4
52 兰州大学 甘肃 41.4
52 中南财经政法大学 湖北 41.4
55 宁波诺丁汉大学 浙江 40.3
56 哈尔滨工程大学 黑龙江 40.1
56 华北电力大学 北京 40.1
58 深圳大学 广东 40.0
59 江南大学 江苏 39.6
59 南京师范大学 江苏 39.6
61 北京工业大学 北京 39.5
62 福州大学 福建 39.4
63 北京外国语大学 北京 39.3
63 北京语言大学 北京 39.3
63 中国地质大学(武汉) 湖北 39.3
66 西南交通大学 四川 39.2
67 华中农业大学 湖北 39.1
67 中国海洋大学 山东 39.1
69 南京农业大学 江苏 39.0
70 上海外国语大学 上海 38.8
71 中国矿业大学 江苏 38.6
72 中国地质大学(北京) 北京 38.5
73 东北财经大学 辽宁 38.2
73 西南财经大学 四川 38.2
73 西南大学 重庆 38.2
76 东北师范大学 吉林 38.1
76 南京邮电大学 江苏 38.1
76 中国政法大学 北京 38.1
79 河海大学 江苏 38.0
80 南京信息工程大学 江苏 37.9
81 西北农林科技大学 陕西 37.8
82 中国石油大学(华东) 山东 37.4
83 合肥工业大学 安徽 37.3
84 陕西师范大学 陕西 37.2
85 华南师范大学 广东 37.1
85 江苏大学 江苏 37.1
87 南京工业大学 江苏 37.0
87 中国石油大学(北京) 北京 37.0
89 西北大学 陕西 36.9
89 浙江工业大学 浙江 36.9
91 北京林业大学 北京 36.8
91 湖南师范大学 湖南 36.8
91 浙江师范大学 浙江 36.8
94 首都师范大学 北京 36.4
95 汕头大学 广东 36.3
96 中国传媒大学 北京 36.2
97 杭州电子科技大学 浙江 36.1
98 扬州大学 江苏 36.0
99 安徽大学 安徽 35.9
100 华侨大学 福建 35.7