大学,一直都是神圣的学习知识的殿堂,各个世界级名校都不断地为社会输送着人才,今天咱们就来盘一盘世界大学的排名状况。html
咱们这里选取的就是上海交通大学的 ARWU 网站web
http://www.shanghairanking.com/ARWU2019.htmlapp
该网站包含了历年的大学分数以及排名状况。函数
经过分析页面能够发现,经过 pandas 的 read_html 函数来获取相关信息是最为方便的学习
table = pd.read_html(url)
college = table[0]
复制代码
同时咱们还发现,大学所对应的国家数据是图片,因此须要特殊处理下网站
def get_country_name(html):
soup = BeautifulSoup(html,'lxml')
countries = soup.select('td > a > img')
lst = []
for i in countries:
src = i['src']
pattern = re.compile('flag.*/(.*?).png')
country = re.findall(pattern,src)[0]
lst.append(country)
return lst
复制代码
最后咱们把获得的数据进行下处理,去除掉不须要的字段,再增长年份字段等url
for i in range(2005, 2020):
print('year', i)
url = 'http://www.shanghairanking.com/ARWU%s.html' % i
html = requests.get(url).content
table = pd.read_html(url)
college = table[0]
college.columns = ['world rank','university', 2,3, 'score', 5]
college.drop([2,3,5],axis = 1,inplace = True)
college['year'] = i
college['index_rank'] = college.index
college['index_rank'] = college['index_rank'].astype(int) + 1
college['country'] = get_country(html)
college.to_csv(r'College.csv', mode='a', encoding='utf_8_sig', header=True, index=0)
复制代码
这样,咱们就获得了 College.csv 文件spa
下面咱们就能够作一些简单的分析了。3d
能够看到,哈佛最为世界第一的名校,其综合评分为100分,接下来就是斯坦福和剑桥大学,不过综合评分的差距仍是蛮大的。code
同时在前十名学府中,美国独占8席,英国占据2席,确实牛的不行。
下面咱们再来看看在 top100 大学中,各个国家所占的比例
能够清晰的看出,美国做为当今惟一的超级大国,其顶尖学府基本占据了世界通常的水平,能够说强大的人才造就能力使其强大的科研能力的坚强后盾!
而英国和澳大利亚紧随其后,可是却远远不能比拟。
中国有4所高校挤进了世界100强,分别是清华、北大、浙江和上海交通大学,能够说它们是中国最好的大学,也同时肩负着振兴中华,输出人才的重大任务。
最后,还能够移步这里查看动态排行视频