溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中ssl錯(cuò)誤的解決方法

發(fā)布時(shí)間:2020-11-21 14:03:55 來源:億速云 閱讀:945 作者:小新 欄目:編程語言

這篇文章主要介紹了Python中ssl錯(cuò)誤的解決方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

在用python寫爬蟲抓取一些https站點(diǎn)的時(shí)候遇到過這樣的錯(cuò)誤:

requests.exceptions.SSLError: [Errno 1] _ssl.c:503: error:14090086:SSL 
routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

解決方案一

requests拋出了一個(gè)SSLError,解決這個(gè)問題最簡(jiǎn)單的方式是關(guān)閉校驗(yàn)。

response = requests.get(url, verify=False)

解決方案二

當(dāng)然關(guān)閉校驗(yàn)會(huì)引發(fā)中間人攻擊這樣的安全問題,但是對(duì)于爬蟲系統(tǒng)來說還好。不過細(xì)究一下原因,可以歸結(jié)到Python 2.x 不支持 SNI。

pyOpenSSL對(duì)SNI問題加了猴子補(bǔ)丁,有對(duì)這個(gè)問題的解決方案。

首先安裝依賴。

pyOpenSSL == 0.13

ndg-httpsclient == 0.3.2

pyasn1 == 0.1.6

pip install pyopenssl ndg-httpsclient pyasn1

然后在使用urllib3之前,即requests之前寫以下代碼。

try:
    import urllib3.contrib.pyopenssl
    urllib3.contrib.pyopenssl.inject_into_urllib3()
except ImportError:
    pass

另外requests對(duì)于SSL問題有一些額外支持來解決這個(gè)問題的。安裝requests的時(shí)候加參數(shù)即可安裝這些額外的包依賴了。

pip install requests[security]

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Python中ssl錯(cuò)誤的解決方法內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI