亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

玩轉python爬蟲之URLError異常處理

2020-01-04 17:45:15
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了python爬蟲的URLError異常處理,詳細探尋一下URL/HTTP異常處理的相關內容,通過一些具體的實例來分析一下,非常的簡單,但是卻很實用,感興趣的小伙伴們可以參考一下
 

本節在這里主要說的是URLError還有HTTPError,以及對它們的一些處理。

1.URLError

首先解釋下URLError可能產生的原因:

  • 網絡無連接,即本機無法上網
  • 連接不到特定的服務器
  • 服務器不存在

在代碼中,我們需要用try-except語句來包圍并捕獲相應的異常。下面是一個例子,先感受下它的風騷

import urllib2 requset = urllib2.Request('http://www.xxxxx.com')try:  urllib2.urlopen(requset)except urllib2.URLError, e:  print e.reason

我們利用了 urlopen方法訪問了一個不存在的網址,運行結果如下:

[Errno 11004] getaddrinfo failed

它說明了錯誤代號是11004,錯誤原因是 getaddrinfo failed

2.HTTPError

HTTPError是URLError的子類,在你利用urlopen方法發出一個請求時,服務器上都會對應一個應答對象response,其中它包含一個數字”狀態碼”。舉個例子,假如response是一個”重定向”,需定位到別的地址獲取文檔,urllib2將對此進行處理。

其他不能處理的,urlopen會產生一個HTTPError,對應相應的狀態嗎,HTTP狀態碼表示HTTP協議所返回的響應的狀態。下面將狀態碼歸結如下:

  • 100:繼續  客戶端應當繼續發送請求??蛻舳藨斃^續發送請求的剩余部分,或者如果請求已經完成,忽略這個響應。
  • 101: 轉換協議  在發送完這個響應最后的空行后,服務器將會切換到在Upgrade 消息頭中定義的那些協議。只有在切換新的協議更有好處的時候才應該采取類似措施。
  • 102:繼續處理   由WebDAV(RFC 2518)擴展的狀態碼,代表處理將被繼續執行。
  • 200:請求成功      處理方式:獲得響應的內容,進行處理
  • 201:請求完成,結果是創建了新資源。新創建資源的URI可在響應的實體中得到    處理方式:爬蟲中不會遇到
  • 202:請求被接受,但處理尚未完成    處理方式:阻塞等待
  • 204:服務器端已經實現了請求,但是沒有返回新的信 息。如果客戶是用戶代理,則無須為此更新自身的文檔視圖。    處理方式:丟棄
  • 300:該狀態碼不被HTTP/1.0的應用程序直接使用, 只是作為3XX類型回應的默認解釋。存在多個可用的被請求資源。    處理方式:若程序中能夠處理,則進行進一步處理,如果程序中不能處理,則丟棄
  • 301:請求到的資源都會分配一個永久的URL,這樣就可以在將來通過該URL來訪問此資源    處理方式:重定向到分配的URL
  • 302:請求到的資源在一個不同的URL處臨時保存     處理方式:重定向到臨時的URL
  • 304:請求的資源未更新     處理方式:丟棄
  • 400:非法請求     處理方式:丟棄
  • 401:未授權     處理方式:丟棄
  • 403:禁止     處理方式:丟棄
  • 404:沒有找到     處理方式:丟棄
  • 500:服務器內部錯誤  服務器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。一般來說,這個問題都會在服務器端的源代碼出現錯誤時出現。
  • 501:服務器無法識別  服務器不支持當前請求所需要的某個功能。當服務器無法識別請求的方法,并且無法支持其對任何資源的請求。
  • 502:錯誤網關  作為網關或者代理工作的服務器嘗試執行請求時,從上游服務器接收到無效的響應。
  • 503:服務出錯   由于臨時的服務器維護或者過載,服務器當前無法處理請求。這個狀況是臨時的,并且將在一段時間以后恢復。
  •  

HTTPError實例產生后會有一個code屬性,這就是是服務器發送的相關錯誤號。
因為urllib2可以為你處理重定向,也就是3開頭的代號可以被處理,并且100-299范圍的號碼指示成功,所以你只能看到400-599的錯誤號碼。

下面我們寫一個例子來感受一下,捕獲的異常是HTTPError,它會帶有一個code屬性,就是錯誤代號,另外我們又打印了reason屬性,這是它的父類URLError的屬性。

import urllib2 req = urllib2.Request('http://blog.csdn.net/cqcre')try:  urllib2.urlopen(req)except urllib2.HTTPError, e:  print e.code  print e.reason

運行結果如下

403Forbidden

錯誤代號是403,錯誤原因是Forbidden,說明服務器禁止訪問。

我們知道,HTTPError的父類是URLError,根據編程經驗,父類的異常應當寫到子類異常的后面,如果子類捕獲不到,那么可以捕獲父類的異常,所以上述的代碼可以這么改寫

import urllib2 req = urllib2.Request('http://blog.csdn.net/cqcre')try:  urllib2.urlopen(req)except urllib2.HTTPError, e:  print e.codeexcept urllib2.URLError, e:  print e.reasonelse:  print "OK"

如果捕獲到了HTTPError,則輸出code,不會再處理URLError異常。如果發生的不是HTTPError,則會去捕獲URLError異常,輸出錯誤原因。

另外還可以加入 hasattr屬性提前對屬性進行判斷,代碼改寫如下

import urllib2 req = urllib2.Request('http://blog.csdn.net/cqcre')try:  urllib2.urlopen(req)except urllib2.URLError, e:  if hasattr(e,"code"):    print e.code  if hasattr(e,"reason"):    print e.reasonelse:  print "OK"

首先對異常的屬性進行判斷,以免出現屬性輸出報錯的現象。

以上,就是對URLError和HTTPError的相關介紹,以及相應的錯誤處理辦法


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美做爰性生交视频| 亚洲欧洲午夜一线一品| 91视频-88av| 中文字幕精品视频| 国产一区二区三区直播精品电影| 日韩av一区二区在线| 91手机视频在线观看| 最好看的2019年中文视频| 中文字幕亚洲国产| 色偷偷91综合久久噜噜| 精品中文字幕在线观看| 国产一区二区免费| 成人写真福利网| 日韩网站免费观看高清| 日韩欧美国产高清91| 国内精品视频一区| 国产精品av免费在线观看| 亚洲精品在线不卡| 91chinesevideo永久地址| 中文字幕日韩欧美精品在线观看| 免费97视频在线精品国自产拍| 久久久久久噜噜噜久久久精品| 亚洲a∨日韩av高清在线观看| 亚洲视频网站在线观看| 色噜噜狠狠狠综合曰曰曰| 亚洲aaa激情| 这里只有精品视频在线| 亚洲最大福利视频网站| 欧美洲成人男女午夜视频| 国产成人久久精品| 91精品国产一区| 精品久久久91| 日本亚洲欧美三级| 在线播放国产一区中文字幕剧情欧美| 国产成人精品免高潮在线观看| 秋霞成人午夜鲁丝一区二区三区| 91产国在线观看动作片喷水| 日韩av网站电影| 超碰97人人做人人爱少妇| 欧美久久精品午夜青青大伊人| 91夜夜揉人人捏人人添红杏| 亚洲精品黄网在线观看| 精品国产美女在线| 国产主播在线一区| 国产激情综合五月久久| 国产国产精品人在线视| 亚洲少妇中文在线| 欧美国产日韩一区二区在线观看| 久久99国产综合精品女同| 久久久久久中文字幕| 91免费综合在线| 国产91在线播放九色快色| 欧美精品免费看| 日韩免费观看av| 日韩国产在线播放| 欧美大片大片在线播放| 久久视频在线播放| 97视频在线看| 91精品国产99久久久久久| 欧美风情在线观看| 久久免费视频在线| 亚洲精品国产电影| 俺去了亚洲欧美日韩| 国产精品黄色影片导航在线观看| 91久久国产精品| 欧美大片免费观看| 国产精品一区二区久久久久| 亚洲成人xxx| 亚洲精美色品网站| 中国人与牲禽动交精品| 亚洲欧洲在线看| 久久夜色精品国产| 欧美日韩亚洲激情| 欧美色视频日本版| 欧美精品videofree1080p| 欧美老女人性生活| 欧美精品久久久久久久久久| 国产精品中文字幕在线观看| 国产亚洲精品久久久久久牛牛| 亚洲人成在线免费观看| 国产日韩在线播放| 欧美壮男野外gaytube| 这里只有精品视频在线| 久久国产视频网站| 日韩欧美成人精品| 国产精品激情自拍| 亚洲国产中文字幕久久网| 国产精品一区二区性色av| 国产精品日韩在线观看| 国产成人一区二区在线| 日本午夜精品理论片a级appf发布| 国产午夜精品免费一区二区三区| 亚洲一区二区久久| 欧美乱大交做爰xxxⅹ性3| 国产精品99导航| 国产偷亚洲偷欧美偷精品| 亚洲最新av在线| 国产精品一区二区三| 日韩激情av在线免费观看| 777午夜精品福利在线观看| 米奇精品一区二区三区在线观看| 色偷偷噜噜噜亚洲男人的天堂| 亚洲国产又黄又爽女人高潮的| 亚洲成人av片| 色狠狠av一区二区三区香蕉蜜桃| 久久久久中文字幕| 色系列之999| 日韩一区二区久久久| 色综合久久悠悠| 麻豆国产va免费精品高清在线| 色综合久久中文字幕综合网小说| 91九色国产在线| 亚洲综合第一页| 国内精品美女av在线播放| 亚洲福利视频网站| 国产一区二区三区直播精品电影| 国产精品一区二区久久久久| 久久久国产一区二区三区| 欧美丝袜一区二区三区| 亚洲va欧美va在线观看| 91九色视频在线| 综合av色偷偷网| 欧美日韩午夜激情| 欧美小视频在线观看| 91精品国产综合久久久久久蜜臀| 成人欧美在线观看| 成人国产精品一区| 国产精品第一视频| 疯狂做受xxxx欧美肥白少妇| 一区二区在线视频播放| 98视频在线噜噜噜国产| 4k岛国日韩精品**专区| 久久综合久久美利坚合众国| 91免费看视频.| 国产午夜精品全部视频播放| 美日韩精品免费观看视频| 亚洲国产97在线精品一区| 色久欧美在线视频观看| 性欧美激情精品| 91色精品视频在线| 成人免费高清完整版在线观看| 久久久噜噜噜久噜久久| 国产精品十八以下禁看| 国产精品综合不卡av| 国产精品日韩欧美| 国产欧美日韩精品在线观看| 精品久久久久人成| 欧美激情免费在线| 中文字幕日韩欧美在线| 国外色69视频在线观看| 国产一区二区视频在线观看| 亚洲中国色老太| 亚洲人精品午夜在线观看| 精品国产一区二区三区久久狼5月| 久热爱精品视频线路一| 国产一区二区激情| 久久久久国产视频| 欧美高清在线观看| 日韩av最新在线| 国产成人在线亚洲欧美| 国产亚洲福利一区| 91av视频导航| 国产一区私人高清影院| 欧美在线激情视频|