2013-12-13 89 views
2

我有一個Ruby應用程序,它使用CasperJS來廢棄網站,給出結果並對數據進行一些處理。Scaling Phantom/CasperJS報廢?

現在,我的CasperJS腳本消耗大約200Mb,所以這意味着如果我想並行啓動5個實例,請做數學:)。我正在考慮將其部署到Heroku,但我相信我會打擊工人的內存限制。

我該怎麼做才能減少內存使用量或使其具有可擴展性?我希望能夠並行解析超過10頁。我應該看看另一種替代方案(我真的需要成爲一個無頭瀏覽器,因爲我想知道頁面中的所有元素在哪裏,而不僅僅是廢除HTML)?

回答

1

我遇到同樣的情況,尤其是像Pinterest這樣的照片密集型網站。在這種情況下,我只能在一個會話中運行約30分鐘,然後PhantomJS會在內存使用1GB時崩潰。

卡斯帕可以選擇不下載圖像,因此可以用幻影JS節省內存。我假設由於頁面緩存而正在構建內存。我很想聽到別人對此事的看法。

我不認爲有太多的選擇。有限制的PhantomJS仍然比Selenium快。

+0

我實際上需要這些圖像:/嗯,我想這是一個支付更多工資而不是線程的問題。任何方式,讓我們看看是否有人回答:) –

0

@Hommer史密斯,

想着光油在前端,把你的圖像緩存和釋放CasperJS的工作。

設置CasperJS在加載外部頁面之前使用您的Varnish,因此您不需要太多內存。

只是一個提示,我不測試解決方案呢。

問候!