安裝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...