如何获得使用通过TOR和Privoxy Python的请求HTTPS内容(How to get HT

2019-08-02 23:37发布

我有我的关于Privoxy系统已通过测试,效果很好的TOR设置。 我所试图做的是通过这个设置代理HTTPS请求,使得这些GET和POST的来通过TOR。 下面是我能产生代码的最简单的版本:

import requests
proxy = { 'http':'127.0.0.1:8118','https':'127.0.0.1:8118' }
r = requests.get('https://www.whatismyip.com/',proxies=proxy)
#r = requests.get('http://www.whatsmyip.org/')
print r

当使用HTTPS,我没有得到响应主体(r.content是空白),但我得到一个200状态码,我可以看到请求出门Privoxy的日志。 我看到一个bug 这个线程,但它看起来是在要求与解决图书馆个月前这个 。

我Privoxy的设置是基本的一个,并设置为监听通过添加以下两行的本地主机:

forward-socks4a / localhost:9050 .
forward-socks5 / localhost:9050 .

在这一点上我不知道发生了什么事情,但没有我似乎工作。 我对Python的2.6.5与最新的请求图书馆和urllib3。

Answer 1:

HTTPS代理还没有正确的支持urllib3 (通过使用requests )。

请参阅请求问题905和urllib3问题50的详细信息。



Answer 2:

尝试requesocks的叉子requests设计,直接连接到SOCKS代理(如Tor是,没有在第一时间曾经使用Privoxy的。如果你需要Privoxy的具体情况,你可能是出于运气,但在其他方面, pip install requesocks和替换

import requests

import requesocks
requests = requesocks.session()
requests.proxies = {"http": "socks5://127.0.0.1:8118",
                   "https": "socks5://127.0.0.1:8118"}

现在, requests变量是一个会话(与requests.get()和朋友),你可以在完全相同的方式直接导入使用requests



文章来源: How to get HTTPS content using Python Requests through TOR and Privoxy