您好我需要从不同的IP执行多个并行请求,因此我使用tblCity
模块启动了两个class Product extends Model
{
public function orders()
{
return $this->belongsTo('App\Order');
}
}
实例。假设一个在tor
运行,第二个在stem
运行。
然后,如果我想使用代理我
127.0.0.1:9150
并通过
检查我的IP127.0.0.1:9050
这适用于单个代理,但是我可以以某种方式指定 socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9050)
socket.socket = socks.socksocket
方法应该使用哪两个代理吗?可能以某种方式限制了代码第一部分的范围?
感谢
答案 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
模块。