您好,登錄后才能下訂單哦!
這篇文章主要介紹了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í)!
免責(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)容。