2012-05-03 121 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