我正在开发一个在 CentOS 6.3 服务器集群上运行的 Python 分布式网络爬虫,该爬虫使用来自不同代理提供商的许多代理。对于用户名/密码认证的代理提供商来说,一切都像一个魅力。但是现在我们已经购买了一些使用基于 IP 的身份验证的代理,这意味着当我想使用其中一个代理爬入网页时,我需要从我们的一部分服务器发出请求。
问题是,在 Python 中有没有办法(使用库/软件)向通过 2 个代理的域发出请求?(一个代理是需要用于 IP 身份验证的子集之一,第二个是来自提供商的实际代理)或者是否有另一种方法可以在不将我们的服务器的这个子集设置为代理的情况下执行此操作?
我现在用来通过代理发出请求的代码使用 requests 库:
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)
提前致谢!