我尝试使用python请求库通过代理连接到网站,例如www.yahoo.com。因此,我将代理设置定义为:
HOST = 'host'
PORT = 1234 # random port I have used here
USER = 'user'
PASS = 'password'
PROXY = "%s:%s@%s:%d" % (USER, PASS, HOST, PORT)
PROXY_DICT = {
"http" : 'http://' + PROXY,
"https" : 'https://' + PROXY,
}
我使用以下代码行:
requests.get('http://www.yahoo.com', proxies=proxy_dict)
这不会引发异常,但响应文本是来自代理的错误页面,说明"确保您已安装证书" 。我有一个证书" certificate.crt" ,与Chrome浏览器一起使用时运行正常。证书是自签名的。我尝试了一些会引起错误的事情。
当使用crt文件作为验证参数时,出现以下错误:
SSLError: [Errno bad ca_certs: 'certificate.crt'] []
当使用crt文件作为证书参数时,出现以下错误:
Error: [('PEM routines', 'PEM_read_bio', 'no start line'), ('SSL routines', 'SSL_CTX_use_certificate_file', 'PEM lib')]
我设法获得 .pem文件(我不确定,但可能是使用密钥和crt文件生成的) 。将它与cert param一起使用时,它不会抛出错误,但响应文本再次显示文本" ... 确保已安装证书 ...&# 34;
使用带有验证参数的 .pem文件时,出现以下错误:
SSLError: [Errno bad handshake] [('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')]
现在,当我提到请求文档时,我发现我可以使用两个参数verify和cert。我在这里用什么?怎么样?