【发布时间】:2017-12-23 07:05:11
【问题描述】:
我尝试像这样在 python 中使用 https 代理:
proxiesDict ={
'http': 'http://' + proxy_line,
'https': 'https://' + proxy_line
}
response = requests.get('https://api.ipify.org/?format=json', proxies=proxiesDict, allow_redirects=False)
proxy_line 是从 ip:port 格式的文件读取的代理。我在浏览器中检查了这个 https 代理,它可以工作。但是在 python 中,这段代码挂了几秒钟,然后我得到了异常:
HTTPSConnectionPool(host='api.ipify.org', port=443): Max retries exceeded with url: /?format=json (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x0425E450>: Failed to establish a new connection: [WinError 10060]
我尝试使用 socks5 代理,它适用于安装了 PySocks 的 socks5 代理。但是对于 https 我得到了这个例外,有人可以帮我吗
【问题讨论】:
-
删除
http://和https://?另外,样本proxy_line包含什么? -
@COLDSPEED 谢谢!我认为它现在可以工作,但它给我的不是某些代理 ip,而是其他 ip。它不是我的 ip,但也不是代理 ip,在带有代理的浏览器中,我访问同一个站点并查看代理 ip。
proxy_line包含这样的代理:79.110.31.87:8085,在浏览器中我访问api.ipify.org时看到相同的 ip,但是从 python 中我得到了奇怪的地址 -
这可能与
allow_redirects=False有关。在您的浏览器中,自动允许重定向。让我知道如果删除它可以解决它,我会为后代创建一个答案。 -
@cᴏʟᴅsᴘᴇᴇᴅ 我尝试
set allow_redirects=True,但结果仍然很奇怪,例如代理79.110.31.87:8085我得到{"ip":"162.220.246.230"}我尝试向whoer.net 提出请求,它显示相同ip -
@cᴏʟᴅsᴘᴇᴇᴅ 没关系,我设置了系统代理。我删除了它,现在我总是从 python 获取我的 IP 地址而不是代理
标签: python https proxy python-requests