問題:
在瀏覽器中訪問該網站時會彈出證書不受信任,可是忽略仍可繼續訪問
但當使用Python登陸時就會拋出_ssl.c:645錯誤,不能讀取頁面。
以前在作Android開發用Jsoup訪問該站時也會有問題,當時的解決辦法是寫一個方法直接信任全部Https的安全證書,就在想python是否是也是能夠這樣作。
一、修改_create_default_https_context變量python
import ssl ssl._create_default_https_context = ssl._create_unverified_context
這樣就能夠解決了!瀏覽器
二、使用requests庫發送請求的時候直接設置verify=False取消驗證便可,會有下面問題安全
問題到此爲止還沒結束,取消SSL驗證又帶來一個新問題。出現了警告信息,這個鍋是urllib3的。網站
InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised.
雖然不是錯誤,可是在捕捉異常時,默認會出問題,爲了避免影響原有流程,應該去掉這些警告信息。url
或者直接取消全部urllib3的警告.net
requests.packages.urllib3.disable_warnings()
原文:https://blog.csdn.net/mighty13/article/details/78076258 code