欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python爬蟲urllib中的異常模塊處理

 更新時間:2022年05月10日 09:33:11   作者:蘇涼.py  
這篇文章主要為大家介紹了python爬蟲在爬取網(wǎng)頁時urllib中的異常模塊處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

urllib中的異常處理

在我們寫爬蟲程序時,若出現(xiàn)url中的錯誤,那么我們就無法爬取我們想要的內(nèi)容,對此,我們引入了urllib中的異常處理。

url的組成部分

URL由6個部分組成:eg:

https://www.baidu.com/s?wd=易烊千璽

  • 協(xié)議(http/https)
  • 主機(www.baidu.com)
  • 端口號(80/443)
  • 路徑(s)
  • 參數(shù)(wd=易烊千璽)
  • 錨點

常見的端口號:

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

URLError

通常來說,URLError報錯通常為url地址中主機部分的錯誤:

實例:

url = 'https://www.baidu.com1/'

運行結(jié)果:

urllib.error.URLError: <urlopen error [Errno 11001] getaddrinfo failed

HTTPError

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

實例:

url = 'https://www.jianshu.com/p/3388cf148dba1'

運行結(jié)果:

urllib.error.HTTPError: HTTP Error 404: Not Found

簡介

  • HTTPError類是URLError類的子類
  • 導入的包urllib.error.HTTPError/urllib.error.URLError
  • http錯誤:http錯誤是針對瀏覽器無法連接到服務(wù)器而增加的出來的錯誤提示,引導并告訴瀏覽者該頁是出了什么問題。
  • 通過urllib發(fā)送請求的時候,有可能會發(fā)送失敗,這個時候如果想讓你的代碼更健壯,可以通過try -except進行捕獲異常。

Urllib.error 模塊

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

urllib.error 包含了兩個方法,URLError 和 HTTPError。

URLError 是 OSError 的一個子類,用于處理程序在遇到問題時會引發(fā)此異常(或其派生的異常)。

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

異常處理

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

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

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

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

except [Exception]:處理其它異常

實例:

原url= ‘https://www.jianshu.com/p/3388cf148dba’

源碼:

import urllib.request
import urllib.error
url = 'https://www.jianshu.com1/p/3388cf148dba'
# url的組成 eg:https://www.baidu.com/s?wd=易烊千璽
# 1.協(xié)議(http/https) 2.主機(www.baidu.com) 3.端口號(80/443) 4.路徑(s) 5.參數(shù)(wd=易烊千璽) 6.錨點
#  常見的端口號
# http(80) https(443) mysql(3306) oracle(1521) redis(6379) mongodb(27017)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
try:
    request = urllib.request.Request(url = url,headers = headers)
    response = urllib.request.urlopen(request)
    content = response.read().decode('utf8')
    print(content)
except urllib.error.HTTPError:
    print('HTTP異常,請稍后!')
except urllib.error.URLError:
    print('URL異常,請稍后!')

1.URLError

url = ‘https://www.jianshu.com1/p/3388cf148dba’

運行結(jié)果:

2.HTTPError

url = ‘https://www.jianshu.com/p/3388cf148dba111’

運行結(jié)果:

由于HTTPRError是URLError的子類,所以需先寫httperror的異常處理,否則一律認為是URLError的異常。urllib的異常處理就寫到這啦,希望大家都不會出現(xiàn)異常,更多關(guān)于python爬蟲urllib異常處理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python通過scapy獲取局域網(wǎng)所有主機mac地址示例

    python通過scapy獲取局域網(wǎng)所有主機mac地址示例

    這篇文章主要介紹了python通過scapy獲取局域網(wǎng)所有主機mac地址示例,需要的朋友可以參考下
    2014-05-05
  • Python爬蟲教程使用Scrapy框架爬取小說代碼示例

    Python爬蟲教程使用Scrapy框架爬取小說代碼示例

    相信學Python爬蟲的小伙伴聽說過Scrapy框架,也用過Scrapy框架,今天我們邊學習Scrapy框架邊爬取整部小說,讓大家在不知不覺的學習過程中使用Scrapy框架完成整部小說的爬取
    2021-09-09
  • Django渲染Markdown文章目錄的方法示例

    Django渲染Markdown文章目錄的方法示例

    這篇文章主要介紹了Django渲染Markdown文章目錄的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 淺析Python中的序列化存儲的方法

    淺析Python中的序列化存儲的方法

    這篇文章主要介紹了Python中的序列化存儲的方法,序列化存儲主要針對的是內(nèi)存和硬盤之間的寫入操作,需要的朋友可以參考下
    2015-04-04
  • Pytorch圖像處理注意力機制解析及代碼詳解

    Pytorch圖像處理注意力機制解析及代碼詳解

    這篇文章主要為大家介紹了Pytorch圖像處理注意力機制解析及代碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 簡單介紹Ruby中的CGI編程

    簡單介紹Ruby中的CGI編程

    這篇文章主要介紹了簡單介紹Ruby中的CGI編程,包括創(chuàng)建Form表單等基本內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • python快速入門題目詳解

    python快速入門題目詳解

    下面小編就為大家?guī)硪黄焖偃腴Tpython的題目詳解小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11
  • 解決Tensorflow sess.run導致的內(nèi)存溢出問題

    解決Tensorflow sess.run導致的內(nèi)存溢出問題

    今天小編就為大家分享一篇解決Tensorflow sess.run導致的內(nèi)存溢出問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 使用matplotlib繪制并排柱狀圖的實戰(zhàn)案例

    使用matplotlib繪制并排柱狀圖的實戰(zhàn)案例

    堆積柱狀圖有堆積柱狀圖的好處,比如說我們可以很方便地看到多分類總和的趨勢,下面這篇文章主要給大家介紹了關(guān)于使用matplotlib繪制并排柱狀圖的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Python搭建代理IP池實現(xiàn)獲取IP的方法

    Python搭建代理IP池實現(xiàn)獲取IP的方法

    這篇文章主要介紹了Python搭建代理IP池實現(xiàn)獲取IP的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10

最新評論