# -*-coding:utf8-*-
"""
=========================================
author: Lujier time: 2019/10/16
E-mail: [email protected]
==========================================
"""
import requests
# 1. 發送get請求
baidu_url = "https://www.baidu.com"
r = requests.get(url=baidu_url)
# 2. 獲取響應狀態碼
# print(r.status_code)
# 3. 獲取cookies
print(r.cookies)
print(r.headers)
print(r.request)
運行代碼報如下錯誤:
requests.exceptions.SSLError: HTTPSConnectionPool(host='www.baidu.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)'),))
原因是:Requests 可以爲 HTTPS 請求驗證 SSL 證書,就像 web 瀏覽器一樣。SSL 驗證默認是開啓的,如果證書驗證失敗,Requests 會拋出 SSLError
baidu_url = "https://www.baidu.com"
r = requests.get(url=baidu_url)
在該域名上我沒有設置 SSL,默認會驗證SSL, verify
是設置爲 True 的。選項 verify
僅應用於主機證書
所以,解決驗證失敗的問題,我們可以繞過驗證
baidu_url = "https://www.baidu.com"
r = requests.get(url=baidu_url, verify=False)
這樣子,問題就解決了
不過,這種做法並不是萬能解決SslError問題的,大家如果還有其他疑問也可參考:
Request高級用法 : https://requests.kennethreitz.org//zh_CN/latest/user/advanced.html#advanced