2012-05-03 120 views
3

在運行PhantomJS提供的rasterize.js示例時,我發現它必須等待20秒或更長時間,直到生成網頁圖像。加快phantomjs屏幕捕捉時間?

有沒有任何可能的方法來加速這一點,而不消耗大量的資源?我基本上希望快速生成從PhantomJS加載的網頁捕獲的一系列連續圖像。如果我能夠將Phantomjs以某種方式輸出到視頻流中,那將會非常棒。

現在我會尋找一些只需在PhantomJS的1〜2秒範圍內截取網頁的截圖。如果已經有一個項目或者圖書館能夠完成這一切,那也會很棒。

+1

最喜歡PhantomJS等待,直到所有的資源(內聯和/或通過網頁需要的話)拍攝前可將頁面轉換爲圖像。驗證此功能的最佳方法是使用其網絡流量分析功能,有關詳細信息,請參閱http://code.google.com/p/phantomjs/wiki/QuickStart#Network_traffic中的示例。 在所有情況下,不知道要光柵化的網站和所有其他細節,很難分析問題。我也強烈建議向PhantomJS郵件列表提出這樣的問題。 –

+0

我使用的代碼谷歌網站相同的svg(老虎)例子。我會看看網絡流量,我在Windows XP上。 – gweg

+0

您可以使用http://phantomjscloud.com/site/docs.html而不是自己滾動(免責聲明:我寫了它) – JasonS

回答

-1

如果你的圖片URL被硬編碼到HTML的響應,那麼你可以做下一件事:

  1. 獲取HTML體
  2. 分析它,並讓您的圖像
  3. ,然後將其渲染成類似PhantomJS或其他基於WebKit的東西。

你可以看看這個樣本,https://github.com/eugenehp/node-crawler/blob/master/test/simple.js

像:

var Crawler = require("../lib/crawler").Crawler; 

var c = new Crawler({ 
    "maxConnections":10, 
    // "timeout":60, 
    "debug":true, 
    callback:function(error,result,$) { 
     console.log("Got page"); 
     $("img").each(function(i,img) { 
      console.log(img.src); 
     }) 
    } 
}); 

c.queue(["http://jamendo.com/","http://tedxparis.com"]); 
+0

這是如何從網站中提取圖片......問題是如何使用phantomJS的捕獲屏幕功能來拍攝瀏覽器在不到20秒內在網頁請求中看到的內容。非常不同的事情。 – Lorenz03Tx