除了在 scrapy 中使用代理之外,还有其他选择吗?源站点已阻止我用于运行蜘蛛程序的服务器。我在项目中添加了 ProxyMiddleware 并随机化了代理。但问题是代理也被源站点阻止。我还将 DOWNLOAD_DELAY 设置为 5,但问题仍然存在。除了转移到新服务器之外,还有其他不使用代理访问该站点的方法吗?
请您参考如下方法:
使用 tor 和 privoxy 解决了我的阻塞问题。
安装器
$ 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'])在项目设置中激活 proxyMiddleware。
DOWNLOADER_MIDDLEWARES = { 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110, 'project_name.middlewares.ProxyMiddleware': 100 }
