Python 最好大学网大学排名爬取(2020年)
生活随笔
收集整理的這篇文章主要介紹了
Python 最好大学网大学排名爬取(2020年)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
嵩老師課程中使用BeautifulSoup庫爬取最好大學(xué)網(wǎng)中,大學(xué)排名的課程,爬取的網(wǎng)頁是2016的鏈接,現(xiàn)在最好大學(xué)網(wǎng)的網(wǎng)站域名和網(wǎng)頁已經(jīng)發(fā)生了一些變化,在老師原先代碼的基礎(chǔ)上進(jìn)行了一些修改,給出最新的爬取代碼。
一、網(wǎng)頁分析
網(wǎng)頁鏈接:https://www.shanghairanking.cn/rankings/bcur/2020
發(fā)生變化的地方:大學(xué)名字現(xiàn)在增加了超鏈接,所以大學(xué)名字包裹在td標(biāo)簽下的a標(biāo)簽內(nèi),這個是需要注意的。
二、代碼如下:
import requests import re from bs4 import BeautifulSoup import bs4# 獲取目標(biāo)網(wǎng)址的文本信息 def getHtmlText(url):try:r = requests.get(url)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return "獲取文本異常"# 通過BeautifulSoup庫解析網(wǎng)頁,將需要的信息加入到一個列表中 def jiexi(ulist, demo):soup = BeautifulSoup(demo, "html.parser")for tr in soup.find("tbody").children:if isinstance(tr, bs4.element.Tag): # 判斷tr標(biāo)簽是不是bs4定義的tag標(biāo)簽,過濾掉其它的tds = tr.find_all('td') # 將td標(biāo)簽內(nèi)容加入到tds列表中aa = tds[1].find("a").string # 因為大學(xué)名字在td標(biāo)簽的子標(biāo)簽a中,所以需要單獨(dú)提取ulist.append([tds[0].string, aa, tds[4].string])def printUlist(ulist, num):tplt = "{0:^10}{1:{3}^10}{2:^10}"print(tplt.format("序號", "學(xué)校名稱", "分?jǐn)?shù)", chr(12288))) #中文空格填充,能保證輸出對齊for i in range(num):u = ulist[i]a = u[0].strip() # 去掉字符串類兩邊的空格b = u[1].strip()c = u[2].strip()print(tplt.format(a, b, c, chr(12288)))def main():url = "https://www.shanghairanking.cn/rankings/bcur/2020"ulist = []demo = getHtmlText(url)jiexi(ulist, demo)printUlist(ulist, 50)main()?輸出結(jié)果:
序號 學(xué)校名稱 分?jǐn)?shù) 1 清華大學(xué) 852.5 2 北京大學(xué) 746.7 3 浙江大學(xué) 649.2 4 上海交通大學(xué) 625.9 5 南京大學(xué) 566.1 6 復(fù)旦大學(xué) 556.7 7 中國科學(xué)技術(shù)大學(xué) 526.4 8 華中科技大學(xué) 497.7 9 武漢大學(xué) 488 10 中山大學(xué) 457.2 11 西安交通大學(xué) 452.5 12 哈爾濱工業(yè)大學(xué) 450.2 13 北京航空航天大學(xué) 445.1 14 北京師范大學(xué) 440.9 15 同濟(jì)大學(xué) 439 16 四川大學(xué) 435.7 17 東南大學(xué) 432.7 18 中國人民大學(xué) 409.7 19 南開大學(xué) 402.1 20 北京理工大學(xué) 395.6 21 天津大學(xué) 390.3 22 山東大學(xué) 387.9 23 廈門大學(xué) 383.3 24 吉林大學(xué) 379.5 25 華南理工大學(xué) 379.4 26 中南大學(xué) 378.6 27 大連理工大學(xué) 365.1 28 西北工業(yè)大學(xué) 359.6 29 華東師范大學(xué) 358 30 中國農(nóng)業(yè)大學(xué) 351.5 31 湖南大學(xué) 348.3 32 電子科技大學(xué) 334.8 33 北京科技大學(xué) 321.8 34 重慶大學(xué) 320.9 35 南京航空航天大學(xué) 319.5 36 南京理工大學(xué) 317.1 37 東北大學(xué) 314 38 蘇州大學(xué) 306.8 39 華中農(nóng)業(yè)大學(xué) 300.5 40 蘭州大學(xué) 300.4 41 西安電子科技大學(xué) 299.4 42 華東理工大學(xué) 294.6 43 北京交通大學(xué) 293.6 44 華中師范大學(xué) 292.4 45 上海大學(xué) 290 46 南方科技大學(xué) 289 47 南京農(nóng)業(yè)大學(xué) 283.2 48 暨南大學(xué) 282.6 49 中國海洋大學(xué) 281.2 50 南京師范大學(xué) 279.9?
總結(jié)
以上是生活随笔為你收集整理的Python 最好大学网大学排名爬取(2020年)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件测试之BUG的提交注意事项
- 下一篇: 百度云加速CDN代理和官方购买有区别,怎