twisted web客户端可以通过SOCKS代理发出请求吗?

2024-04-28 12:06:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个python程序twisted.web.client.Agent发出https请求。我想有选择地通过Tor发出这些请求,如果我将socks5代理设置为127.0.0.1:9050,我应该可以这样做。在

我找不到任何关于使用socks代理的扭曲文档,但是我可以找到关于使用http代理的信息:https://twistedmatrix.com/documents/current/web/howto/client.html#auto9

我在另一个项目ooniprobe中也发现了一些代码,它似乎通过socks代理发出扭曲的web请求。这是探员:

https://gitweb.torproject.org/ooni-probe.git/blob/HEAD:/ooni/templates/httpt.py#l65

self.control_agent = Agent(reactor, sockshost="127.0.0.1",
                           socksport=config.tor.socks_port)

但那个探员实际上ooni.utils.TXAgentWithStocks公司.Agent,继承自twisted.web.client.代理人:

https://gitweb.torproject.org/ooni-probe.git/blob/HEAD:/ooni/utils/txagentwithsocks.py#l157

那里的请求方法如下所示:

^{pr2}$

Twisted>;=12.1.0似乎支持socks代理,对吗?有人知道如何在不编写子类的情况下通过它们提出请求吗twisted.web.client.探员?在


Tags: httpsorggitclientweb代理twistedblob
2条回答

使用我的库“txtorcon”,您可以轻松地创建一个Agent,适合与内置的Twisted web客户端(或treq)一起使用,它可以通过Tor(或选定的电路)发出请求。在

参见:https://txtorcon.readthedocs.io/en/latest/guide.html#making-connections-over-tor

txtorcon现在包含了它自己的minimal SOCKS5客户端,原因有两个:txsocksx没有(也可能不会?)支持Python3和Tor有一些定制的SOCKS5操作码(用于DNS查找),将来可能会添加更多。在

Twisted中的twisted.web.client.AgentAPI不支持SOCKS。这是一个有计划但尚未实现的功能。在

如果您想加快这一进程,您可以鼓励OONI项目在上游实现它们。在

相关问题 更多 >