爬蟲例項(中國大學排名定向排名)

2021-08-19 22:40:07 字數 2624 閱讀 7078

功能:

輸出:大學排名資訊的螢幕輸出(排名,大學名稱,總分)

技術路線:requests-bs4

定向爬蟲:僅對輸入的url進行爬取,不擴充套件爬取

步驟:1.從網路上獲取大學排名網頁內容

2.提取網頁中資訊到合適的資料結構

3.利用資料結構展示並輸出結果

程式的結構設計:

1.    從網路上獲取大學排名網頁內容

gethtmltext()

2.    提取網頁內容中資訊到合適的資料結構

fillunivlist()

3.    利用資料結構展示並輸出結果

printunivlist()

**:

#-*-coding:utf-8-*-

import requests

from bs4 import beautifulsoup

import bs4

def

gethtmltext()

try:

r = requests.get(url,

timeout = 30)

r.raise_for_statys()

return r.text

except:

return

""def

fillunivlist(ulist,html):

soup = beautifulsoup(html,

"html.parser")

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

if isinstance(tr,bs4.element.tag)

tds = tr('td')

def

printunivlist(ulist,num):

print("

\t\t

".format("排名", "學校名稱", "總分"))

for i in range(num):

u = ulist[i]

print("

\t\t

".format(u[0],u[1],u[2]))

def

main():

uinfo =

url = ''

html =gethtmltext(url)

fillunivlist(uinfo,html)

printunivlist(uinfo,

20) # 20所

結果:

中文對齊問題的原因:

當中文字元寬度不夠時,採用西文字元填充;西文字元占用寬度不同

採用中文字元的空格填充chr(12288)

優化後:

#crawunivrankinga.py

import

requests

from

bs4 

import

beautifulsoup

import

bs4def

gethtmltext(url):

try:r =

requests.get(url, timeout=30

)r.raise_for_status()

r.encoding 

=return

r.text

except

:return

""def

fillunivlist(ulist, html):

soup 

=beautifulsoup(html, 

"html.parser"

)for

tr in

soup.find(

'tbody'

).children:

ifisinstance

(tr, bs4.element.tag):

tds 

=tr(

'td')0

].string, tds[

1].string, tds[

3].string])

defprintunivlist(ulist, num):

print

("\t\t"

.format

("排名"

,"學校名稱"

,"總分"

))for

i in

range

(num):u=

ulist[i]

print

("\t\t"

.format

(u[0

],u[

1],u[

2]))

defmain():

uinfo =

url 

=''html 

=gethtmltext(url)

fillunivlist(uinfo, html)

printunivlist(uinfo, 

20) 

# 20 univs

main()

中國大學排名定向爬蟲例項

第乙個大學 第n個大學 import requests from bs4 import beautifulsoup import bs4 def gethtmltext url 輸入url,返回html try r requests.get url,timeout 30 r.raise for st...

爬蟲 中國大學排名定向爬蟲例項

最好大學排名 輸出 大學排名資訊的螢幕輸出 排名,大學名稱,總分 技術路線 requests bs4 定向爬蟲 僅對輸入url進行爬取,不擴充套件爬取 bs4只能獲取靜態url資訊 步驟1 從網路上獲取大學排名網頁內容 定義gethtmltext 步驟2 提取網頁內容中資訊到合適的資料結構 定義fi...

中國大學排名定向爬蟲

功能描述 輸入 大學排名url鏈結 輸出 大學排名資訊的螢幕輸出 排名,大學名稱,總分 技術路線 requests bs4 定向爬蟲 僅對輸入url進行爬取,不擴充套件爬取 程式的結構設計 步驟1 從網路上獲取大學排名網頁內容 gethtmltext 步驟2 提取網頁內容中資訊到合適的資料結構 fi...