我试图通过使用cookie验证从网站获得cookie (以及页面的其余部分)。
请求库,但在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绕过它,但这是IMHO非常不安全的方式。我也知道有一种获取和解析证书的方法(从here),但是这种方式对我来说太过分了。我还应该指出,我有pip install 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)发布于 2020-03-10 21:36:11
首先,我要说,您不想这样做,除非您是/知道远程服务器上证书的颁发者,并且您确信这是一个有效的系统。不要简单地假设它只是一个具有坏证书的合法服务(您想使用它)。
您需要对应于该证书的CA包,请遵循以下指示:
https://requests.readthedocs.io/en/stable/user/advanced/#ssl-cert-verification
提示:使用自签名证书中的.pem文件。或提供带有服务器证书的pem文件以及任何中间证书。
您还可以将verify=指向一个目录,并将所有证书都插入其中。
https://stackoverflow.com/questions/60626159
复制相似问题