将代理与请求一起使用时SSLCertificationError

时间:2019-10-30 11:31:15

标签: python proxy python-requests

我正在使用Luminati代理管理器,并且尝试将代理与请求一起使用时遇到SSLCertificationError。 我可以在Selenium中使用代理服务器,所以它似乎必须与我如何在 requests 中使用代理服务器做些什么?

请注意,我确实通过安装 certifi

为Mac用户尝试了默认解决方案

我正在使用的示例代码:

import random
import requests

proxies = {
    'http': 'http://127.0.0.1:24000',
    'https': 'http://127.0.0.1:24000'
}
headers = [{'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko'},
           {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0'},
           {'User-Agent': 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.10; rv:62.0) Gecko/20100101 Firefox/62.0'},
           ]

url = 'https://lumtest.com/myip.json'
header = random.choice(headers)
try:
    req = requests.get(url, proxies=proxies, headers=header)
    html = req.text
    print(html)

except Exception as e:
    print('failed: ', url)
    print(e)

这将引发错误:

  

HTTPSConnectionPool(host ='lumtest.com',port = 443):最多重试   网址超出了:/myip.json(由   SSLError(SSLCertVerificationError(1,'[SSL:CERTIFICATE_VERIFY_FAILED]   证书验证失败:无法获取本地颁发者证书   (_ssl.c:1056)')))

如果我通过verify=False,一切都可以。但我高度怀疑这是正确/明智的做法;)

0 个答案:

没有答案