python爬蟲(chóng)urllib中的異常模塊處理_第1頁(yè)
python爬蟲(chóng)urllib中的異常模塊處理_第2頁(yè)
python爬蟲(chóng)urllib中的異常模塊處理_第3頁(yè)
python爬蟲(chóng)urllib中的異常模塊處理_第4頁(yè)
python爬蟲(chóng)urllib中的異常模塊處理_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第python爬蟲(chóng)urllib中的異常模塊處理目錄urllib中的異常處理url的組成部分URLErrorHTTPError簡(jiǎn)介Urllib.error模塊異常處理

urllib中的異常處理

在我們寫(xiě)爬蟲(chóng)程序時(shí),若出現(xiàn)url中的錯(cuò)誤,那么我們就無(wú)法爬取我們想要的內(nèi)容,對(duì)此,我們引入了urllib中的異常處理。

url的組成部分

URL由6個(gè)部分組成:eg:

/swd=易烊千璽

協(xié)議(http/https)主機(jī)()端口號(hào)(80/443)路徑(s)參數(shù)(wd=易烊千璽)錨點(diǎn)

常見(jiàn)的端口號(hào):

http(80)https(443)mysql(3306)oracle(1521)redis(6379)mongodb(27017)

URLError

通常來(lái)說(shuō),URLError報(bào)錯(cuò)通常為url地址中主機(jī)部分的錯(cuò)誤:

實(shí)例:

url='1/'

運(yùn)行結(jié)果:

urllib.error.URLError:urlopenerror[Errno11001]getaddrinfofailed

HTTPError

這個(gè)異常的通常是url地址中參數(shù)或是路徑的錯(cuò)誤。

實(shí)例:

url='/p/3388cf148dba1'

運(yùn)行結(jié)果:

urllib.error.HTTPError:HTTPError404:NotFound

簡(jiǎn)介

HTTPError類(lèi)是URLError類(lèi)的子類(lèi)導(dǎo)入的包urllib.error.HTTPError/urllib.error.URLErrorhttp錯(cuò)誤:http錯(cuò)誤是針對(duì)瀏覽器無(wú)法連接到服務(wù)器而增加的出來(lái)的錯(cuò)誤提示,引導(dǎo)并告訴瀏覽者該頁(yè)是出了什么問(wèn)題。通過(guò)urllib發(fā)送請(qǐng)求的時(shí)候,有可能會(huì)發(fā)送失敗,這個(gè)時(shí)候如果想讓你的代碼更健壯,可以通過(guò)try-except進(jìn)行捕獲異常。

Urllib.error模塊

urllib.error模塊為urllib.request所引發(fā)的異常定義了異常類(lèi),基礎(chǔ)異常類(lèi)是URLError。

urllib.error包含了兩個(gè)方法,URLError和HTTPError。

URLError是OSError的一個(gè)子類(lèi),用于處理程序在遇到問(wèn)題時(shí)會(huì)引發(fā)此異常(或其派生的異常)。

HTTPError是URLError的一個(gè)子類(lèi),用于處理特殊HTTP錯(cuò)誤例如作為認(rèn)證請(qǐng)求的時(shí)候,包含的屬性code為HTTP的狀態(tài)碼,reason為引發(fā)異常的原因,headers為導(dǎo)致HTTPError的特定HTTP請(qǐng)求的HTTP響應(yīng)頭。

異常處理

用tryexcept語(yǔ)句塊捕獲并處理異常,其基本語(yǔ)法結(jié)構(gòu)如下所示:

try:可能產(chǎn)生異常的代碼塊

except[(Error1,Error2,)[ase]]:處理異常的代碼塊1

except[(Error3,Error4,)[ase]]:處理異常的代碼塊2

except[Exception]:處理其它異常

實(shí)例:

原url=/p/3388cf148dba

源碼:

importurllib.request

importurllib.error

url='1/p/3388cf148dba'

#url的組成eg:/swd=易烊千璽

#1.協(xié)議(http/https)2.主機(jī)()3.端口號(hào)(80/443)4.路徑(s)5.參數(shù)(wd=易烊千璽)6.錨點(diǎn)

#常見(jiàn)的端口號(hào)

#http(80)https(443)mysql(3306)oracle(1521)redis(6379)mongodb(27017)

headers={

'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/98.0.4758.102Safari/537.36'

request=urllib.request.Request(url=url,headers=headers)

response=urllib.request.urlopen(request)

content=response.read().decode('utf8')

print(content)

excepturllib.error.HTTPError:

print('HTTP異常,請(qǐng)稍后!')

excepturllib.error.URLError:

print('URL異常,請(qǐng)稍后!')

1.URLError

url=1/p/3388cf148dba

運(yùn)行結(jié)果:

2.HTTPError

url=/p/3388cf148dba111

運(yùn)行結(jié)果:

由于HTTPRError

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論