大學,一直都是神聖的學習知識的殿堂,各個世界級名校都不斷地爲社會輸送着人才,今天咱們就來盤一盤世界大學的排名狀況。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強,分別是清華、北大、浙江和上海交通大學,能夠說它們是中國最好的大學,也同時肩負着振興中華,輸出人才的重大任務。
最後,還能夠移步這裏查看動態排行視頻