Python 在分布式爬虫中使用IP认证代理

Python 在分布式爬虫中使用IP认证代理,python,proxy,web-crawler,Python,Proxy,Web Crawler,我正在使用Python开发一个分布式web爬虫程序,该程序运行在CentOS 6.3服务器集群上,该爬虫程序使用来自不同代理提供商的许多代理。对于用户名/密码认证的代理提供商来说,一切都像一个符咒。但现在我们已经购买了一些使用基于IP的身份验证的代理,这意味着当我想使用其中一个代理爬网到网页时,我需要从服务器的子集发出请求 问题是,Python中有没有一种方法(使用库/软件)通过2个代理向域发出请求?(一个代理是需要用于IP身份验证的子集之一,第二个是来自提供商的实际代理)或者是否有其他方法可以

我正在使用Python开发一个分布式web爬虫程序,该程序运行在CentOS 6.3服务器集群上,该爬虫程序使用来自不同代理提供商的许多代理。对于用户名/密码认证的代理提供商来说,一切都像一个符咒。但现在我们已经购买了一些使用基于IP的身份验证的代理,这意味着当我想使用其中一个代理爬网到网页时,我需要从服务器的子集发出请求

问题是,Python中有没有一种方法(使用库/软件)通过2个代理向域发出请求?(一个代理是需要用于IP身份验证的子集之一,第二个是来自提供商的实际代理)或者是否有其他方法可以做到这一点,而无需将我们的服务器子集设置为代理

我现在使用的通过代理发出请求的代码使用请求库:

import requests
from requests.auth import HTTPProxyAuth

proxy_obj = {
    'http':proxy['ip']
}

auth = HTTPProxyAuth(proxy['username'], proxy['password')

data = requests.get(url, proxies = proxy_obj, auth = auth)
提前谢谢

Python中是否有方法(使用库/软件)发出请求 到通过2个代理的域

如果您需要通过两个代理,看起来您必须使用,因此任何不在授权列表中的主机都必须连接其中一个主机上的HTTP代理服务器,该主机是,并使用HTTP
connect
方法创建到远程代理的隧道,但使用
请求
库可能无法实现这一点

或者有没有其他方法可以在不设置 我们的服务器作为代理

假设使用基于IP地址的身份验证的远程代理都需要相同的IP地址,那么您可以在集群和远程代理之间配置一个NAT路由器,将所有出站HTTP请求转换为来自该IP地址


但是,在您考虑实施这些不必要的复杂选项之前,并且考虑到您正在为此服务付费,您不能要求提供商允许您当前使用的整个IP地址范围的请求吗?

您到底为什么需要使用代理?你的群集不能直接命中远程主机吗?好的。应该可以使用Python。到目前为止,基于代理的访问有哪些代码?您使用的是
httplib
还是
sockets
或其他什么?谢谢,我编辑了这个问题,添加了我现在使用的代码示例,它使用了请求库。