scrapy+splash问题504 Gateway Time-out解决办法
本地用scrapy+splash调试的时候好好的,到了服务器上就奇慢无比,爆出来的错误是:
504GatewayTime-out
这明显是在服务器上,splash渲染页面的时候超时了。
而且在服务器上用curl,或者用浏览器访问,都是非常快的,就是走splash慢了。
导致这个问题的主要原因是:splash在下载某些资源的时候,花的时间太长了,这些资源可能是某个链接,也可能是某张图片、某个js文件或者css文件。
解决办法就是:
- 增加splash请求的超时时间
- 禁止splash下载图片
- 限制资源下载的时间,超过就断开,一般这不会影响页面DOM的下载
具体代码如下:
defstart_requests(self):
forurlinself.start_urls:
yieldSplashRequest(url,
self.parse,
args={'wait':0.5,'viewport':'1024x2480','timeout':90,'images':0,'resource_timeout':10},
)
参考地址:
- 504GatewayTime-out
- scrapysplash504错误解决以及若干建议