日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

【Python3网络爬虫开发实战】3-基本库的使用 1.2-处理异常

發(fā)布時(shí)間:2025/6/15 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python3网络爬虫开发实战】3-基本库的使用 1.2-处理异常 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前一節(jié)我們了解了請(qǐng)求的發(fā)送過(guò)程,但是在網(wǎng)絡(luò)不好的情況下,如果出現(xiàn)了異常,該怎么辦呢?這時(shí)如果不處理這些異常,程序很可能因報(bào)錯(cuò)而終止運(yùn)行,所以異常處理還是十分有必要的。

urllib的error模塊定義了由request模塊產(chǎn)生的異常。如果出現(xiàn)了問(wèn)題,request模塊便會(huì)拋出error模塊中定義的異常。

1. URLError

URLError類來(lái)自u(píng)rllib庫(kù)的error模塊,它繼承自O(shè)SError類,是error異常模塊的基類,由request模塊生的異常都可以通過(guò)捕獲這個(gè)類來(lái)處理。

它具有一個(gè)屬性reason,即返回錯(cuò)誤的原因。

下面用一個(gè)實(shí)例來(lái)看一下:

from urllib import request, error try:response = request.urlopen('http://cuiqingcai.com/index.htm') except error.URLError as e:print(e.reason) 復(fù)制代碼

我們打開(kāi)一個(gè)不存在的頁(yè)面,照理來(lái)說(shuō)應(yīng)該會(huì)報(bào)錯(cuò),但是這時(shí)我們捕獲了URLError這個(gè)異常,運(yùn)行結(jié)果如下:

Not Found 復(fù)制代碼

程序沒(méi)有直接報(bào)錯(cuò),而是輸出了如上內(nèi)容,這樣通過(guò)如上操作,我們就可以避免程序異常終止,同時(shí)異常得到了有效處理。

2. HTTPError

它是URLError的子類,專門(mén)用來(lái)處理HTTP請(qǐng)求錯(cuò)誤,比如認(rèn)證請(qǐng)求失敗等。它有如下3個(gè)屬性。

  • code:返回HTTP狀態(tài)碼,比如404表示網(wǎng)頁(yè)不存在,500表示服務(wù)器內(nèi)部錯(cuò)誤等。
  • reason:同父類一樣,用于返回錯(cuò)誤的原因。
  • headers:返回請(qǐng)求頭。

下面我們用幾個(gè)實(shí)例來(lái)看看:

from urllib import request,error try:response = request.urlopen('http://cuiqingcai.com/index.htm') except error.HTTPError as e:print(e.reason, e.code, e.headers, seq='\n') 復(fù)制代碼

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

Not Found 404 Server: nginx/1.4.6 (Ubuntu) Date: Wed, 03 Aug 2016 08:54:22 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: close X-Powered-By: PHP/5.5.9-1ubuntu4.14 Vary: Cookie Expires: Wed, 11 Jan 1984 05:00:00 GMT Cache-Control: no-cache, must-revalidate, max-age=0 Pragma: no-cache Link: <http://cuiqingcai.com/wp-json/>; rel="https://api.w.org/" 復(fù)制代碼

依然是同樣的網(wǎng)址,這里捕獲了HTTPError異常,輸出了reason、code和headers屬性。

因?yàn)閁RLError是HTTPError的父類,所以可以先選擇捕獲子類的錯(cuò)誤,再去捕獲父類的錯(cuò)誤,所以上述代碼更好的寫(xiě)法如下:

from urllib import request, errortry:response = request.urlopen('http://cuiqingcai.com/index.htm') except error.HTTPError as e:print(e.reason, e.code, e.headers, sep='\n') except error.URLError as e:print(e.reason) else:print('Request Successfully') 復(fù)制代碼

這樣就可以做到先捕獲HTTPError,獲取它的錯(cuò)誤狀態(tài)碼、原因、headers等信息。如果不是HTTPError異常,就會(huì)捕獲URLError異常,輸出錯(cuò)誤原因。最后,用else來(lái)處理正常的邏輯。這是一個(gè)較好的異常處理寫(xiě)法。

有時(shí)候,reason屬性返回的不一定是字符串,也可能是一個(gè)對(duì)象。再看下面的實(shí)例:

import socket import urllib.request import urllib.errortry:response = urllib.request.urlopen('https://www.baidu.com', timeout=0.01) except urllib.error.URLError as e:print(type(e.reason))if isinstance(e.reason, socket.timeout):print('TIME OUT') 復(fù)制代碼

這里我們直接設(shè)置超時(shí)時(shí)間來(lái)強(qiáng)制拋出timeout異常。

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

<class 'socket.timeout'> TIME OUT 復(fù)制代碼

可以發(fā)現(xiàn),reason屬性的結(jié)果是socket.timeout類。所以,這里我們可以用isinstance()方法來(lái)判斷它的類型,作出更詳細(xì)的異常判斷。

本節(jié)中,我們講述了error模塊的相關(guān)用法,通過(guò)合理地捕獲異常可以做出更準(zhǔn)確的異常判斷,使程序更加穩(wěn)健。


本資源首發(fā)于崔慶才的個(gè)人博客靜覓: Python3網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)實(shí)戰(zhàn)教程 | 靜覓

如想了解更多爬蟲(chóng)資訊,請(qǐng)關(guān)注我的個(gè)人微信公眾號(hào):進(jìn)擊的Coder

weixin.qq.com/r/5zsjOyvEZ… (二維碼自動(dòng)識(shí)別)


總結(jié)

以上是生活随笔為你收集整理的【Python3网络爬虫开发实战】3-基本库的使用 1.2-处理异常的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品日韩在线观看 | 九九久久精品 | 在线视频污| 国产成人精品一区二区三区无码熬 | 国产极品视频在线观看 | 亚洲天堂网址 | 国产91综合一区在线观看 | 久久久无码18禁高潮喷水 | 国产高清无遮挡 | 波多野在线视频 | 91人妻一区二区三区蜜臀 | 桃色视屏 | 青青伊人国产 | 99热8| 嫩草视频免费观看 | av网站在线观看免费 | 午夜av片 | 在线视频观看国产 | 黄色成人一级片 | 成人看片| 公侵犯人妻中文字慕一区二区 | 亚洲色图 美腿丝袜 | 美女av片| 久久一区二区三区四区五区 | 免费黄色短片 | 国产做受高潮漫动 | 美女福利在线观看 | 亚洲精品免费网站 | 91小视频在线观看 | 草草影院在线免费观看 | 四虎少妇做爰免费视频网站四 | 成人在线观看免费高清 | 老妇女玩小男生毛片 | 亚洲图片欧美日韩 | 69久久久久久 | 日韩不卡 | 国产乡下妇女三片 | 黄色精品免费 | 日韩欧美亚洲成人 | 国产日韩欧美视频 | 成都电影免费大全 | 亚洲成人av在线播放 | 亚洲欧洲色图 | 精品国产三级片在线观看 | 九九自拍偷拍 | 潮喷失禁大喷水aⅴ无码 | 亚洲成人看片 | 欧美高清69hd | 女人被男人躁得好爽免费视频 | 中文字幕少妇在线三级hd | 久久国产成人精品国产成人亚洲 | 小小姑娘电影大全免费播放 | 香蕉视频色版 | 理想之城连续剧40集免费播放 | 在线免费观看黄色网址 | 网友自拍一区 | 日日摸日日干 | 精品亚洲精品 | 亚洲精品日日夜夜 | 又黄又爽的网站 | 在线观看污污网站 | 免费a级| 无码成人精品区在线观看 | 亚洲第一色播 | 国产精品久久久久不卡 | 影音先锋国产在线 | 亚洲欧美视频一区 | 久久91精品 | 日韩久久在线 | 亚洲 小说区 图片区 都市 | 色播99| 亚洲一卡二卡在线 | 欧美草b| 亚洲free性xxxx护士白浆 | 欧美性生活免费视频 | 色就是色综合 | 欧美一级淫片bbb一84 | 国产美女视频免费观看下载软件 | 永久免费看mv网站入口78 | 日日撸夜夜撸 | 韩国三级做爰高潮 | 免费看毛片的网站 | 麻豆av导航 | 欧美美女性生活视频 | 欧美人喂奶吃大乳 | 6080亚洲精品一区二区 | 免费看黄色片的网站 | 香蕉黄色片 | 青青草草视频 | 免费欧美| zzji欧美大片 | 亚洲男人天堂2022 | 成人黄色小视频在线观看 | 日产电影一区二区三区 | 九一国产在线观看 | 色香视频首页 | 自拍色图 | 精品人妻一区二区三区在线视频 | 午夜一级视频 |