1. 程式人生 > >python requests 請求 https SSL 報錯

python requests 請求 https SSL 報錯

連線國企vpn時的一次掉坑經歷

跟領導倆人搞了一下午,頭都快炸了,不過找到了解決辦法。

首先是https請求,通過代理訪問,但一直報錯,就像這樣:

(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_record', 'wrong version number')],)",),))

查了好多部落格和國外網站,最終在一個犄角旮旯裡找到了正解:

原文地址:https://github.com/requests/requests/issues/2022

主要原因是該都比網站ssl支援版本太低,而python直譯器對ssl支援版本高,導致無法執行,正解如下:

from requests_toolbelt import SSLAdapter
import requests
adapter = SSLAdapter('TLSv1')
s = requests.Session()
s.mount('https://', adapter)

之後請求就OK了!!!

s.get(url=url,verify=False,headers=headers).text