在scrapy中使用代理是否有其他选择。源站点已阻止我用于运行蜘蛛的服务器。我在项目中添加了ProxyMiddleware
并随机化了代理。但问题是代理也被源站点阻止。我还将DOWNLOAD_DELAY
设置为5,但问题仍然存在。除了转移到新服务器之外,还有其他方法可以在不使用代理的情况下访问该站点吗?
答案 0 :(得分:4)
使用tor与privoxy解决了我的阻塞问题。
安装tor
$ sudo apt-get install tor
安装polipo
$ sudo apt-get install polipo
配置privoxy以使用tor socks proxy。
$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'])
在项目设置中激活proxyMiddleware。
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
'project_name.middlewares.ProxyMiddleware': 100
}
答案 1 :(得分:0)