大學排名資訊爬取

2021-08-08 22:07:52 字數 1767 閱讀 1964

import requests

from bs4 import beautifulsoup

import bs4

defgethtmltext

(url):

try:

r = requests.get(url)

r.raise_for_status()

return r.text

except:

return

""def

fillunivlist

(ulist, html):

soup = beautifulsoup(html, 'html.parser')

for tr in soup.find('tbody').children:

if isinstance(tr,bs4.element.tag ): #判斷tbody的子節點是否為標籤屬性,需引入bs4庫

tds = tr('td')

defprintunivlist

(ulist,num):

tplt = "\t^10}\t"

#冒號前為引用format中引數的位置,0、1、2分別代表排名、學校、分數,^表示居中對齊,:與^之前的代表填充內容,10為列寬

print(tplt.format('排名','學校','分數',chr(12288))) #chr(12288)為中文空格,上句中表示引用這個內容

for i in range(num):

u = ulist[i] #ulist形式為:[[0, 0, 1], [0, 0, 2], ...], ulist[0]=[0, 0, 1],所以u[0]、u[1]、u[2]對應數字0,0,1

print(tplt.format(u[0],u[1],u[2],chr(12288)))

defmain

(): url = ''

ulist = #別忘了定義ulist屬性為列表

html = gethtmltext(url)

fillunivlist(ulist, html)

printunivlist(ulist,30)

main()

方式高階:儲存爬取資料

import requests

import re

from bs4 import beautifulsoup

import bs4

import pandas as pd

try:

r = requests.get("")

except:

print("")

html = r.text

seq=

school=

province=

score=

soup = beautifulsoup(html, "html.parser")

for tr in soup.find('tbody','hidden_zhpm').children:

if isinstance(tr,bs4.element.tag):

tds = tr('td')

u_info = pd.dataframe([school,province,score]).t #爬取的列表資訊整理成**物件

u_info = u_info.rename(columns=) #加表頭

u_info.to_csv('univ_info.csv',index=false) #儲存到【univ_info.csv】**

python爬取大學排名

返回載入出來的資料 def gethtmltext url return 解析列表 def fillunivlist ulist,html pass 列印資料 def printunivlist ulist,num pass 進行呼叫函式,返回結果 def main unifo url 載入html...

python爬取最好大學排名

coding gbk import requests from bs4 import beautifulsoup import bs4 def gethtmltext url 將url資訊爬取,並將html頁面返回給其他程式 try r requests.get url,timeout 30 30m...

中國大學排名定向爬取

步驟一 從網路上獲取大學排名網頁內容 步驟二 提取網頁內容中資訊到合適的資料結構 步驟三 利用資料結構展示並輸出結果 通過右鍵檢視其網頁源 可得到如下介面 我們在這個介面找到如下資訊,可以發現,這些資訊是在tbody標籤下的,tr下面的td中就是我們想要爬取的資訊。我們僅爬取前四個td值進行返回,第...