并行SOCKS5代理

时间:2016-04-09 12:49:20

标签: python sockets tor

您好我需要从不同的IP执行多个并行请求,因此我使用tblCity模块启动了两个class Product extends Model { public function orders() { return $this->belongsTo('App\Order'); } } 实例。假设一个在tor运行,第二个在stem运行。

然后,如果我想使用代理我

127.0.0.1:9150

并通过

检查我的IP
127.0.0.1:9050

这适用于单个代理,但是我可以以某种方式指定 socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9050) socket.socket = socks.socksocket 方法应该使用哪两个代理吗?可能以某种方式限制了代码第一部分的范围? 感谢

1 个答案:

答案 0 :(得分:2)

这不是对sockets模块进行猴子修补,而是另一种解决方案。

requests模块已经支持使用http代理,如here所述;例如:

import requests

proxies = {
  'http': 'http://10.10.1.10:3128',
  'https': 'http://10.10.1.10:1080',
}

requests.get('http://example.org', proxies=proxies)

当然,您希望使用 SOCKS 代理,但没有 原生支持。然而 polipo http代理知道如何与上游SOCKS代理通话,因此可以 用于在requests模块支持的内容之间进行转换 你的上游代理人。

除了你的两个代理之外,你还会运行两个polipo代理, 然后使用proxies选项在一个或另一个点请求 各种requests方法。

您的polipo配置如下所示:

socksParentProxy = localhost:9050
socksProxyType = socks5

这可以在不需要sockets补丁的情况下工作 模块或requests模块。