中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2022-05-10 14:18:32 來源:億速云 閱讀:271 作者:iii 欄目:開發技術

這篇文章主要介紹“python爬蟲urllib中的異常模塊如何處理”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“python爬蟲urllib中的異常模塊如何處理”文章能幫助大家解決問題。

    urllib中的異常處理

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

    url的組成部分

    URL由6個部分組成:eg:

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

    • 協議(http/https)

    • 主機(www.baidu.com)

    • 端口號(80/443)

    • 路徑(s)

    • 參數(wd=易烊千璽)

    • 錨點

    常見的端口號:

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

    URLError

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

    實例:

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

    運行結果:

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

    HTTPError

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

    實例:

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

    運行結果:

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

    簡介

    • HTTPError類是URLError類的子類

    • 導入的包urllib.error.HTTPError/urllib.error.URLError

    • http錯誤:http錯誤是針對瀏覽器無法連接到服務器而增加的出來的錯誤提示,引導并告訴瀏覽者該頁是出了什么問題。

    • 通過urllib發送請求的時候,有可能會發送失敗,這個時候如果想讓你的代碼更健壯,可以通過try -except進行捕獲異常。

    Urllib.error 模塊

    urllib.error 模塊為 urllib.request 所引發的異常定義了異常類,基礎異常類是 URLError。

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

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

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

    異常處理

    用try except語句塊捕獲并處理異常,其基本語法結構如下所示:

    try:可能產生異常的代碼塊

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

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

    except [Exception]:處理其它異常

    實例:

    原url= &lsquo;https://www.jianshu.com/p/3388cf148dba&rsquo;

    源碼:

    import urllib.request
    import urllib.error
    url = 'https://www.jianshu.com1/p/3388cf148dba'
    # url的組成 eg:https://www.baidu.com/s?wd=易烊千璽
    # 1.協議(http/https) 2.主機(www.baidu.com) 3.端口號(80/443) 4.路徑(s) 5.參數(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 = &lsquo;https://www.jianshu.com1/p/3388cf148dba&rsquo;

    運行結果:

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

    2.HTTPError

    url = &lsquo;https://www.jianshu.com/p/3388cf148dba111&rsquo;

    運行結果:

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

    關于“python爬蟲urllib中的異常模塊如何處理”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    巨鹿县| 东阿县| 江阴市| 台中县| 罗城| 资讯| 资阳市| 措勤县| 南溪县| 日照市| 印江| 万源市| 宾阳县| 闵行区| 乌恰县| 铜陵市| 汉阴县| 兰溪市| 昌吉市| 星子县| 思茅市| 新巴尔虎右旗| 阿瓦提县| 河南省| 惠水县| 临汾市| 连州市| 柏乡县| 余江县| 分宜县| 儋州市| 漯河市| 社旗县| 沾化县| 项城市| 灵石县| 鸡泽县| 左贡县| 东平县| 河北区| 平昌县|