发布于 2011-08-20 00:50:55
我怀疑你是否能找到像phantomjs一样有效的东西。我只是将渲染看作一个异步后端进程,并在主node.js进程的子进程中执行幻影,然后调用它。渲染网页是很困难的,因为幻影是基于WebKit的,所以它实际上可以做到这一点。我认为如果不是基于现有的浏览器渲染引擎,就不会有节点库可以将网页渲染为图形文件。但也许有一天phantomjs会更无缝地与node集成。
发布于 2016-04-16 19:39:11
试试nightmare,它使用了电子,它比phantomjs快得多,而且它的API很简单,并且使用了现代的ES6 javascript。
发布于 2011-08-18 20:20:58
这看起来像是一个有一点开销的解决方案……
您可以将Mozilla Firefox与MozRepl插件一起使用。基本上,这个插件为你提供了一个连接到Firefox的telnet端口,让你可以从外部控制浏览器。您可以打开URL、截图等。在Xvfb服务器上运行Firefox将在无头模式下运行它。
现在,您只需使用node.js从外部控制浏览器。我见过一些例子,有人在火狐的chrome.js中实现了一个类似http的接口。因此,您可以运行http命令来获取屏幕截图。然后,您可以从node.js使用http调用。这可能看起来很奇怪,实际上是这样,但对你来说可能很好用。
我在生产环境中使用Perl Mojolicious在异步模式下运行了一个稍微修改过的版本来触发屏幕截图。然而,有一个小问题。当需要插件时,它们确实可以工作,但是Flash通常在可见区域被激活,这不会发生,所以电影/flash的东西可能不会初始化。
https://stackoverflow.com/questions/7108256
复制相似问题