scrapy+splash问题504 Gateway Time-out解决办法

3.4k 技术 , , 发表评论

本地用scrapy + splash调试的时候好好的,到了服务器上就奇慢无比,爆出来的错误是:

504 Gateway Time-out

这明显是在服务器上,splash渲染页面的时候超时了。

而且在服务器上用curl,或者用浏览器访问,都是非常快的,就是走splash慢了。

导致这个问题的主要原因是:splash在下载某些资源的时候,花的时间太长了,这些资源可能是某个链接,也可能是某张图片、某个js文件或者css文件。

解决办法就是:

  • 增加splash请求的超时时间
  • 禁止splash下载图片
  • 限制资源下载的时间,超过就断开,一般这不会影响页面DOM的下载

具体代码如下:

def start_requests(self):
for url in self.start_urls:
yield SplashRequest(url,
self.parse,
args={'wait': 0.5, 'viewport': '1024x2480', 'timeout': 90, 'images': 0, 'resource_timeout': 10},
)

参考地址:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

昵称 *