【发布时间】:2020-03-10 21:25:17
【问题描述】:
我正在尝试使用 cookie 验证从网站获取 cookie(以及页面的其余部分)
requests 库,但 SSL 证书验证失败:
HTTPSConnectionPool(host='***host***', port=443): Max retries exceeded with url: ***url*** (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)')))
我知道(来自here)我可以使用verify=False 绕过它,但恕我直言,这是非常不安全的方式。我也知道有一种方法可以获取和解析证书(来自here),但这种方法对我来说太过分了。我还应该注意,我通过pip install certifi 安装了 certifi,但它并没有从我的 POV 做任何事情。
你知道如何解决这个问题吗? 谢谢回答!
我的代码:
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36'
}
r = requests.get('https://secure.ulrichsw.cz/estrava/, headers=headers, verify=True)
session_id = r.cookies['PHPSESSID']
print(session_id)
【问题讨论】:
-
这里有很多类似的问题也有答案。他们通常有答案,因为他们提供了有关服务器的更多详细信息,并使其他人可以重现该问题。在您的具体情况下,不知道问题出在哪里,但可能缺少根 CA、服务器未发送的中间证书或服务器使用的自签名证书。由于您的问题中缺少详细信息(例如服务器名称),因此无法提供更多详细信息。
标签: python ssl https python-requests ssl-certificate