似乎无法使用python请求使https和socks代理正常工作

似乎无法使用python请求使https和socks代理正常工作,python,proxy,python-requests,Python,Proxy,Python Requests,因此,我正在使用wireshark查看流量,并比较多种情况下的输出。我只关注我和google.co.za之间的流量 情况1:不使用代理访问google.co.za requests.get('www.google.co.za') requests.get("http://google.co.za",proxies={'http':proxy}) requests.get("http://google.co.za",proxies={'socks':proxy}) 这将返回一个状态为200的

因此,我正在使用wireshark查看流量,并比较多种情况下的输出。我只关注我和google.co.za之间的流量

情况1:不使用代理访问google.co.za

requests.get('www.google.co.za')
requests.get("http://google.co.za",proxies={'http':proxy})
requests.get("http://google.co.za",proxies={'socks':proxy})
这将返回一个状态为200的响应,wireshark将显示我的电脑和谷歌服务器之间的流量信息。到目前为止这很好

情况2:使用有效的http代理访问google.co.za

requests.get('www.google.co.za')
requests.get("http://google.co.za",proxies={'http':proxy})
requests.get("http://google.co.za",proxies={'socks':proxy})
这将返回一个状态为200的响应,wireshark不会显示我的电脑和谷歌服务器之间的流量数据。这是伟大的,期待和东西

情况3:使用有效的socks代理访问google.co.za

requests.get('www.google.co.za')
requests.get("http://google.co.za",proxies={'http':proxy})
requests.get("http://google.co.za",proxies={'socks':proxy})
根据情况1得出结果。嗯

情形4:https的处理方式相同

requests.get("http://google.co.za",proxies={'https':proxy})
结果与情况1相同

问题

因此,当我尝试使用https和socks代理请求时,代理参数似乎是空的。现在我需要通过各种代理传递流量,我不希望出现任何无声的故障


我的问题是:为什么东西会悄无声息地出现故障?我能做些什么来修复它?

请求
根本不支持SOCKS或HTTPS代理

不过他们在里面工作。请看这里:

对HTTPS代理的支持已经合并到
requests 2.0
分支中,因此如果您愿意,可以尝试该版本;但要小心,因为它目前是一个不稳定的分支

另一方面,SOCKS代理支持仍在较低级别的库urllib3中进行:

此外,不管怎样,您都不正确地使用了
代理
参数。它的形式应该是
{protocol\u of_sites\u you\u visit:proxy}
,因此一旦支持完成,使用SOCKS5代理实际上将更符合
{“http”:“SOCKS5://127.0.0.1:9050”}