替代 scrapy 代理
Alternative to scrapy proxy
除了在 scrapy 中使用代理之外,还有其他选择吗?源站点已阻止我用于 运行 蜘蛛程序的服务器。我在项目中添加了 ProxyMiddleware
并随机化了代理。但问题是代理也被源站点阻止。我还将 DOWNLOAD_DELAY
设置为 5,但问题仍然存在。除了转移到新服务器之外,还有其他不使用代理访问该站点的方法吗?
您可能需要 squid。
屏蔽失败代理,使用代理更快,自动轮换,自动重试转发,设置规则。
只需将您的蜘蛛设置为相同的出口代理即可。
使用 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
}
除了在 scrapy 中使用代理之外,还有其他选择吗?源站点已阻止我用于 运行 蜘蛛程序的服务器。我在项目中添加了 ProxyMiddleware
并随机化了代理。但问题是代理也被源站点阻止。我还将 DOWNLOAD_DELAY
设置为 5,但问题仍然存在。除了转移到新服务器之外,还有其他不使用代理访问该站点的方法吗?
您可能需要 squid。
屏蔽失败代理,使用代理更快,自动轮换,自动重试转发,设置规则。
只需将您的蜘蛛设置为相同的出口代理即可。
使用 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 }