嗨,我需要执行来自不同IP的多个并行请求,因此我有两个使用stem
模块启动的tor
实例。假设一个在127.0.0.1:9150
运行,另一个在127.0.0.1:9050
上运行。在
如果我想用代理的话
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9050)
socket.socket = socks.socksocket
检查我的IP地址
^{pr2}$这对单个代理有效,但是我可以指定requests.get()
方法应该使用哪两个代理?可能是因为某种原因限制了代码第一部分的范围?
谢谢
这里有一个替代方案,而不是猴子修补
sockets
模块。在requests
模块已经支持使用http代理,如here所述;例如:当然,您需要使用一个SOCKS代理,但是没有 本地支持。但是 polipo http代理知道如何与上游SOCKS代理通信,因此可以 用于在
requests
模块支持的内容和 你的上游任务代理。在除了你的两个tor代理,你还需要运行两个polipo代理, 然后使用
proxies
选项将请求指向其中一个或另一个 到各种requests
方法。在您的polipo配置如下所示:
^{pr2}$这将不需要对
sockets
进行修补 模块或requests
模块。在相关问题 更多 >
编程相关推荐