减less无限循环中的phantomjs / casperjs / spookyjs内存使用

我试图刮一个页面,使用phantomjs casperjs和幽灵般的无限滚动。 它应该继续点击更多的button,并从结果中的新链接,直到手动停止。 然而脚本开始使用越来越多的内存,直到它崩溃。 我写了下面的脚本,有没有一种方法来优化它,所以它不会使用更多的内存:

function pressMore(previousLinksLength) { this.click('#projects > div.container-flex.px2 > div > a'); this.wait(1000, function() { links = this.evaluate(function() { var projectPreview = document.querySelectorAll('.project-thumbnail a'); return Array.prototype.map.call(projectPreview, function(e) { return e.getAttribute('href'); }); }); this.emit('sendScrapedLinks', links.slice(previousLinksLength)); // repeat scrape function pressMore.call(this, links.length); }); } // spookyjs starts here spooky.start(scrapingUrl); //press the more button spooky.then(pressMore); spooky.run(); 

我也遇到了无限滚动网站上的这个问题。 我永远无法find内存泄漏。

总之我最终做的是使用滚动来。 本质上,我会运行应用程序一会儿上次滚动到位置,然后重新启动应用程序使用logging的值,以防止内存越来越高。 这是一个痛苦,因为许多网站你必须顺序滚动到一个特定的位置加载越来越多。 find这些职位来分割你的上一个滚动位置可能是具有挑战性的。