成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

爬蟲養(yǎng)成記 - urllib2的調(diào)試和錯(cuò)誤處理

CoffeX / 1964人閱讀

摘要:設(shè)置和處理事實(shí)上,并不是所有發(fā)起的請(qǐng)求都能得到服務(wù)器的回應(yīng)。例如網(wǎng)絡(luò)無鏈接連接不到服務(wù)器鏈接不存在請(qǐng)求的方法不對(duì)等情況都會(huì)造成拋出錯(cuò)誤。上面說到的出錯(cuò)就會(huì)拋出。用于處理相關(guān)的錯(cuò)誤。

urllib2的timeout

timeout參數(shù)用于設(shè)置超時(shí)。我們?cè)谂廊∫恍╉憫?yīng)較慢的網(wǎng)站的時(shí)候,需要設(shè)置一個(gè)比較長(zhǎng)的超時(shí)時(shí)間。

response = urllib2.urlopen(request, timeout=10)

上述代碼設(shè)置timeout為10秒。

設(shè)置Debug
import urllib2

httpHandler = urllib2.HTTPHandler(debuglevel=1)
opener = urllib2.build_opener(httpHandler)
urllib2.install_opener(opener)

urllib2.urlopen("http://www.zhihu.com")
URLError和HTTPError處理

事實(shí)上,并不是所有urllib2發(fā)起的請(qǐng)求都能得到服務(wù)器的回應(yīng)。
例如

網(wǎng)絡(luò)無鏈接

連接不到服務(wù)器

鏈接不存在

請(qǐng)求的方法不對(duì)

等情況都會(huì)造成urllib2拋出錯(cuò)誤。
urllib2提供了兩個(gè)Exception用于處理響應(yīng)的錯(cuò)誤。

URLError
URLError是HttpError的父類。上面說到的handlers出錯(cuò)就會(huì)拋出URLError。

HTTPError
HTTPError是URLError的子類。用于處理Http相關(guān)的錯(cuò)誤。

HTTPError除了reson屬性外還有code屬性。
code屬性即http狀態(tài)碼。更多狀態(tài)碼可以閱讀:http://www.cnblogs.com/shanyo...

下面我們來展示一下示例代碼:

import urllib2

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36"
}
request = urllib2.Request("http://blog.csdn.net/cqcre", headers = headers)

httpHandler = urllib2.HTTPHandler(debuglevel=1)
opener = urllib2.build_opener(httpHandler)
urllib2.install_opener(opener)

try:
    response = urllib2.urlopen(request)
    print response.getcode()
except urllib2.HTTPError, e:
    print e.code, e.reason
except urllib2.URLError, e:
    print e.reason

值得注意的是 HTTPError是URLError的子類,因此在捕獲Exception的時(shí)候需要將子類放在前面避免Exception先被父類捕獲。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/38379.html

相關(guān)文章

  • 爬蟲養(yǎng)成 - 網(wǎng)絡(luò)下載器urllib2初認(rèn)識(shí)

    摘要:申明本系列文章借鑒了慕課網(wǎng)的課程,。慕課網(wǎng)是一個(gè)非常贊的學(xué)習(xí)網(wǎng)站。是下的一個(gè)模塊,在中,被拆分成和實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的下載器使用函數(shù)可以給服務(wù)器發(fā)送一個(gè)請(qǐng)求。該函數(shù)返回一個(gè)該返回的對(duì)象有三個(gè)額外的函數(shù)取得服務(wù)器返回的。默認(rèn)沒有的,請(qǐng)求方式為。 申明:本系列文章借鑒了慕課網(wǎng)的課程,http://www.imooc.com/learn/563。慕課網(wǎng)是一個(gè)非常贊的學(xué)習(xí)網(wǎng)站。 urllib2是p...

    AlphaWallet 評(píng)論0 收藏0
  • 爬蟲養(yǎng)成 - urllib2HTTPCookieProcessor

    摘要:相當(dāng)于該用戶的檔案。上述的文字對(duì)機(jī)制描述的比較簡(jiǎn)單也并不一定完全正確。但是默認(rèn)的并不支持。中供我們使用的是。創(chuàng)建需要闖入一個(gè)存放的容器。即過期的也保存。目前博主只知道鏈接后帶的參數(shù)需要與相匹配。但是并不知道兩者具體的關(guān)系。 很多網(wǎng)站的資源需要用戶登錄之后才能獲取。我們一旦登錄后再訪問其他被保護(hù)的資源的時(shí)候,就不再需要再次輸入賬號(hào)、密碼。那么網(wǎng)站是怎么辦到的呢?一般來說,用戶在登錄之后,...

    gnehc 評(píng)論0 收藏0
  • 爬蟲養(yǎng)成 - 網(wǎng)絡(luò)下載器urllib2偽裝術(shù)

    摘要:發(fā)送請(qǐng)求方不希望被跟蹤。主要用來將偽裝成一個(gè)正常的瀏覽器。該字典就是說是網(wǎng)絡(luò)協(xié)議名稱,是代理的。另外一般會(huì)明確指定資源存放的位置。意思是將現(xiàn)在提交的數(shù)據(jù)存放于下第篇。請(qǐng)求刪除某一個(gè)資源。向服務(wù)器提交數(shù)據(jù)。 前一個(gè)教程我們涉及到了urllib2的一些高級(jí)應(yīng)用。這一片文章我們來比較系統(tǒng)的介紹一下。 該篇教程參考了靜覓的博文:http://cuiqingcai.com/954.html。寫這...

    Darkgel 評(píng)論0 收藏0
  • 爬蟲養(yǎng)成 - 什么是網(wǎng)絡(luò)爬蟲

    摘要:趁著春節(jié),希望能寫一個(gè)小小的網(wǎng)絡(luò)爬蟲框架。網(wǎng)頁下載器接收,將頁面內(nèi)容下來??梢远x一個(gè)表,定義兩個(gè)字段和緩存數(shù)據(jù)庫(kù)網(wǎng)頁下載器網(wǎng)頁下載器就是更具下載網(wǎng)頁內(nèi)容等。常見的網(wǎng)頁下載器有是官方的基礎(chǔ)模塊。 趁著春節(jié),希望能寫一個(gè)小小的網(wǎng)絡(luò)爬蟲框架。先定一個(gè)小目標(biāo),希望能比較優(yōu)雅地將某個(gè)網(wǎng)站上的所有圖片爬下來。暫時(shí)先將這個(gè)爬蟲的名字叫做Squirrel,小松鼠吧。 什么是爬蟲 爬蟲其實(shí)是一種從互聯(lián)...

    lucas 評(píng)論0 收藏0
  • 爬蟲 - 收藏集 - 掘金

    摘要:在這之前,還是有必要對(duì)一些概念超輕量級(jí)反爬蟲方案后端掘金前言爬蟲和反爬蟲日益成為每家公司的標(biāo)配系統(tǒng)。 爬蟲修煉之道——從網(wǎng)頁中提取結(jié)構(gòu)化數(shù)據(jù)并保存(以爬取糗百文本板塊所有糗事為例) - 后端 - 掘金歡迎大家關(guān)注我的專題:爬蟲修煉之道 上篇 爬蟲修煉之道——編寫一個(gè)爬取多頁面的網(wǎng)絡(luò)爬蟲主要講解了如何使用python編寫一個(gè)可以下載多頁面的爬蟲,如何將相對(duì)URL轉(zhuǎn)為絕對(duì)URL,如何限速,...

    1fe1se 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<