python爬蟲之urllib 二

2021-08-28 09:55:09 字數 2160 閱讀 5484

urllib.error可以接收urllib.request產生的異常,urllib.error有三個方法,如下:

urlerror是oserror的乙個子類,httperror是urlerror的乙個子類,伺服器上http的響應會返回乙個狀態碼,根據這個http狀態碼,我們可以知道我們的訪問是否成功。例如200狀態碼,表示請求成功,再比如常見的404錯誤等。

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

from urllib import request

from urllib import error

url = ""

req = request.request(url)

try:

response = request.urlopen(req)

html = response.read().decode('utf-8')

print(html)

except error.urlerror as e:

print(e.reason)

我們可以看到如下執行結果:

[errno 11002] getaddrinfo failed       獲取位址資訊失敗。

再看下httperror異常

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

from urllib import request

from urllib import error

#乙個不存在的資源

執行結果:

404     雖然鏈結伺服器沒有問題,但是所請求的html資源不存在。

urlerror和httperror混合使用,值得注意的一點是,如果想用httperror和urlerror一起捕獲異常,那麼需要將httperror放在urlerror的前面,因為httperror是urlerror的乙個子類。如果urlerror放在前面,出現http異常會先響應urlerror,這樣httperror就捕獲不到錯誤資訊了。

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

from urllib import request

from urllib import error

#乙個不存在的資源

也可以使用hasattr函式判斷urlerror含有的屬性,如果含有reason屬性表明是urlerror,如果含有code屬性表明是httperror

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

from urllib import request

from urllib import error

#乙個不存在的資源

python爬蟲之urllib 四

每個 都會定義robots.txt 檔案,這個檔案可以告訴網路爬蟲爬取該 時存在哪些限制。作為良好網民以及其他人利益,一般上遵從這些限制。如何檢視這個檔案?可以通過在目標 站點或網域名稱後面加上 robots.txt 進行訪問。例如 目標 站點 的 robots.txt 檔案就是 robots.tx...

Python爬蟲之urllib模組2

python爬蟲之urllib模組2 pg 55,乙個待畢業待就業的二流大學生。看了一下上一節的反饋,有些同學認為這個沒什麼意義,也有的同學覺得太簡單,關於 beautifulsoup 和lxml 獲取後面的鏈結我們能不能如法炮製呢,我們先來試試。我們把 寫成下面那樣 然後我們現在來試試 結果我們發...

Python 爬蟲乾貨之urllib庫

小試牛刀 怎樣扒網頁呢?其實就是根據url來獲取它的網頁資訊,雖然我們在瀏覽器中看到的是一幅幅優美的畫面,但是其實是由瀏覽器解釋才呈現出來的,實質它是一段html 加 js css,如果把網頁比作乙個人,那麼html便是他的骨架,js便是他的肌肉,css便是它的衣服。所以最重要的部分是存在於html...