并行套接字5代理

2024-05-16 00:30:08 发布

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

嗨,我需要执行来自不同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()方法应该使用哪两个代理?可能是因为某种原因限制了代码第一部分的范围? 谢谢


Tags: 模块实例ip代理typesocketrequeststor
1条回答
网友
1楼 · 发布于 2024-05-16 00:30:08

这里有一个替代方案,而不是猴子修补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模块支持的内容和 你的上游任务代理。在

除了你的两个tor代理,你还需要运行两个polipo代理, 然后使用proxies选项将请求指向其中一个或另一个 到各种requests方法。在

您的polipo配置如下所示:

^{pr2}$

这将不需要对sockets进行修补 模块或requests模块。在

相关问题 更多 >