【发布时间】:2015-07-28 07:52:11
【问题描述】:
在scrapy中使用代理有什么替代方法吗?源站点已阻止我用于运行蜘蛛的服务器。我在项目中添加了ProxyMiddleware 并随机分配了代理。但问题是代理也被源站点阻止。我还将DOWNLOAD_DELAY 设置为5,但问题仍然存在。除了转移到新服务器之外,还有其他方法可以在不使用代理的情况下访问该网站吗?
【问题讨论】:
在scrapy中使用代理有什么替代方法吗?源站点已阻止我用于运行蜘蛛的服务器。我在项目中添加了ProxyMiddleware 并随机分配了代理。但问题是代理也被源站点阻止。我还将DOWNLOAD_DELAY 设置为5,但问题仍然存在。除了转移到新服务器之外,还有其他方法可以在不使用代理的情况下访问该网站吗?
【问题讨论】:
将 tor 与 privoxy 结合使用解决了我的阻塞问题。
安装tor
$ sudo apt-get install tor
安装 polipo
$ sudo apt-get install polipo
配置 privoxy 以使用 tor socks 代理。
$sudo nano /etc/polipo/config
在文件末尾添加以下行。
socksParentProxy = localhost:9050
diskCacheRoot=""
disableLocalInterface=""
在 middlewares.py 中添加代理中间件。
class ProxyMiddleware(object):
def process_request(self, request, spider):
request.meta['proxy'] = 'http://localhost:8123'
spider.log('Proxy : %s' % request.meta['proxy'])
在项目设置中激活代理中间件。
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
'project_name.middlewares.ProxyMiddleware': 100
}
【讨论】:
【讨论】: