小菜鳥從乙個個案例來練習爬蟲,心路是曲折的,555
在爬蟲案例(一)中,是用urllib進行的。本案例中應用的是requests庫,它會比urllib更加方便,requests是python實現的最簡單易用的http庫,建議爬蟲使用requests庫。
1.安裝requests庫。
python沒有安裝requests模組,可以在cmd視窗通過:pip install requests 語句進行安裝,用來爬取網頁內容。
類似的,安裝第三方庫beautifulsoup4用來將爬取的網頁內容分析處理:pip install beautifulsoup4。
2.寫出案例**如下:
(該案例源**來自
import requests
from bs4 import beautifulsoup
alluniv =
defgethtmltext
(url)
:try
: response = requests.get(url,timeout=30)
response.encoding=
'utf-8'
if response.status_code ==
200:
#如果狀態碼是200,不產生異常
return response.text
return
none
except requestexception:
print
("請求索引頁錯誤"
)return
none
deffillunivlist
(soup)
: data = soup.find_all(
'tr'
)#檢視html原始碼:資訊在html中以table形式存在,每個學校資訊是一行,存放在tr中,單元格資訊存放在td中
for tr in data:
ltd = tr.find_all(
'td')if
len(ltd)==0
:continue
singleuniv =
for td in ltd:
defprintunivlist
(num)
:print(""
.format
("排名"
,"學校名稱"
,"省市"
,"學校型別"
,"總分"))
for i in
range
(num)
: u=alluniv[i]
print(""
.format
(u[0
],u[1]
,u[2
],u[3]
,u[4])
)def
main()
: url =
''html = gethtmltext(url)
soup = beautifulsoup(html,
"html.parser"
)#使用bs4庫中beautifulsoup類,生成乙個物件。
fillunivlist(soup)
printunivlist(10)
#輸出排名前10的學校
main(
)
結果為:
排名 學校名稱 省市 學校型別 總分
1 清華大學 北京 綜合 852.5
2 北京大學 北京 綜合 746.7
3 浙江大學 浙江 綜合 649.2
4 上海交通大學 上海 綜合 625.9
5 南京大學 江蘇 綜合 566.1
6 復旦大學 上海 綜合 556.7
7 中國科學技術大學 安徽 理工 526.4
8 華中科技大學 湖北 綜合 497.7
9 武漢大學 湖北 綜合 488.0
10 中山大學 廣東 綜合 457.2
Python爬蟲 2019大學排名資料抓取
輸入 大學排名url連線 輸出 大學排名資訊螢幕輸出 所需要用到的庫 requests,bs4 獲取網頁資訊 提取網頁中的內容並放到資料結構中 利用資料結構展示並輸出結果 定義函式gethtmltext 獲取網頁資訊 定義函式univlist 放入資料結構 定義函式printunivlist 輸出到...
Python爬蟲 中國大學排名爬蟲
案例 import requests from bs4 import beautifulsoup import bs4 def gethtmltext url 爬取最好大學排名 內容 try r requests.get url,timeout 30 r.raise for status retur...
Python之爬蟲 中國大學排名
usr bin env python coding utf 8 import bs4 import requests from bs4 import beautifulsoup 通過傳入 資訊建立乙個獲取網頁文字的函式 def gethtmltext url 判斷獲取網頁文字過程中是否有錯誤 try...