3

我通过scrapy-splash python包使用splash浏览器用scrapy编写了一个爬虫。我正在使用 aquarium python 包将并行的scrapy请求负载平衡到一个splash docker集群。

刮板使用一长串 url 作为 start_urls 列表。没有通过 href 或分页从页面到页面的“爬行”。

我正在运行六个启动程序,每个启动程序有 5 个插槽作为负载平衡的浏览器集群。我在六个并发请求上运行scrapy。

开发机器是具有双核 2.4Ghz CPU 和 16Gb RAM 的 macbook pro。

当蜘蛛启动时,水族馆标准输出显示快速请求/响应,板载风扇旋转并且系统以 90% 的使用率和 10% 的空闲率运行,因此我不会使系统资源过载。内存/交换也没有耗尽。

此时,我的速度非常慢~30 页/分钟。几分钟后,风扇停止运转,系统资源显着空闲(>60% 空闲),scrapy 日志显示每个请求都有 503 超时。

当我查看水族馆集群的标准输出时,有正在处理的请求,尽管与第一次调用蜘蛛时相比非常慢。

如果我到达 localhost:9050,我确实会在 10 秒左右后获得启动页面,因此负载平衡器/启动程序是在线的。

如果我停止蜘蛛并重新启动它,它会正常启动,所以这似乎不是来自目标站点的限制,因为蜘蛛重新启动也会受到限制,但事实并非如此。

我感谢社区可以提供的任何见解。

谢谢。

4

0 回答 0