中國好大學排名爬蟲和中文空格填充

2021-09-29 16:41:59 字數 2591 閱讀 1213

安裝requests庫要在python的安裝目錄下才可以。

cmd最好以管理員開啟。

在這裡插入**片

import requests

from bs4 import beautifulsoup

import bs4

defgethtmltext

(url)

:try

: r = requests.get(url)

r.raise_for_status(

) return r.text

except

:return

"爬取錯誤"

deffullunivlist

(ulist,html)

: soup = beautifulsoup(html,

"html.parser"

)for tr in soup.find(

'tbody'

).children:

ifisinstance

(tr,bs4.element.tag)

: tds=tr(

'td'

)[tds[0]

.string,tds[1]

.string,tds[3]

.string]

)def

printunivlist

(ulist,num)

:print

("\t \t \t"

.format

("排名"

,"學校"

,"總分"))

for i in

range

(num)

: u =ulist[i]

print

("\t \t \t"

.format

(u[0

],u[1]

,u[2])

)def

main()

: uinfo =

url =

''html = gethtmltext(url)

fullunivlist(uinfo,html)

printunivlist(uinfo,

10)

main(

)

注意 不要忘記寫main(

)執行。(我說怎麼不報錯還爬取個空白頁面,太大意了)

``優化:

中文對齊問題:用中文字元的空格填充 chr

(12288

)warn:我是真看出有什麼不一樣

```python

defprintunivlist

(ulist,num)

: tplt =

"\t^10}\t"

print

(tplt.

format

("排名"

,"學校名稱"

,"總分"

,chr

(12288))

)for i in

range

(num)

: u =ulist[i]

print

(tplt.

format

(u[0

],u[1]

,u[2],

chr(

12288))

)

chr(12288)的位置不要寫錯,要在format裡面。但是我的結果還是出錯

traceback (most recent call last)

: file "e:\爬蟲\universitybanking.py"

, line 33,in

main(

) file "e:\爬蟲\universitybanking.py"

, line 32

,in main

printunivlist(uinfo,10)

file "e:\爬蟲\universitybanking.py"

, line 21

,in printunivlist

print

(tplt.

format

("排名"

,"學校名稱"

,"總分"

,chr

(12288))

)valueerror: invalid format specifier

>>

>

查詢資料發現是這裡出了問題:

```python

tplt=

"\t^10}\t"

看了好久,到底**不一樣呢!

冒號也都是英文啊!

逐一測試發現

1:^

10這裡不能有空格

這裡的是format格式的第三個引數選項代表槽的寬度,我們這裡用中文空格填空。

執行結果:

Python爬蟲實現 中國最好大學排名2016

中國最好大學排名網 輸入 url,num 列印行數 輸出 三個函式 獲取原始碼 defgethtmltext url try r requests.get url,timeout 30 r.raise for status 檢查狀態是否合法 return r.text except return 返...

python3爬蟲 中國最好大學排名

使用python的requests和beautifulsoup爬取前20個中國最好的大學,內容 於最好大學這個 不需要登陸,直接可以訪問靜態網頁內容,網頁如下 直接可以提取資訊,非常適合練習requests和beautifulsoup功能.主程式需要幾個部分組成 首先載入必要的包 import re...

中國部分大學排名爬蟲

目標 如下 1 import requests 引入requests庫 2from bs4 import beautifulsoup 3import bs4 引入bs4庫 4def gethtmltext url 獲得網頁內容的函式 5try 6 r requests.get url,timeout...