是否有支持CSS 3D的PhantomJs替代品

时间:2019-04-29 21:03:40

标签: javascript html node.js phantomjs record

我正在尝试使用NodeJ记录网页。我正在使用PhantomJs截取页面和ffmpeg的屏幕截图以将其转换为视频。问题是我正在使用的页面使用3d转换CSS,而PhantomJs不支持3d转换(http://phantomjs.org/supported-web-standards.html),并且一切似乎都是静态的。 除了支持3d变换的PhantomJ,还有其他选择吗?还是不同的方法?

不必是NodeJ,Python等其他语言也可以使用。

这是我现在正在使用的代码:

var page = require("webpage").create();
page.viewportSize = { width: 500, height: 860 };

page.open("pageurl", function() {
    // Initial frame
    var frame = 0;
    // Add an interval every 25th second
    setInterval(function() {
      // Render an image with the frame name
      page.render("frames/dragon" + frame++ + ".png", { format: "png" });
      // Exit after 50 images
      if (frame > 100) {
        phantom.exit();
      }
    }, 25);
});

3 个答案:

答案 0 :(得分:0)

OBS通过Chromium Embedded Framework支持此功能。有API for OBS,或者您可以直接使用CEF。

通过浏览器扩展,我使用的另一种方法是Tab Capture API

答案 1 :(得分:0)

Phantom JS不再被维护,因此我建议您使用puppeteer之类的东西,它使用无头的镀铬,使您能够执行所请求的操作。

答案 2 :(得分:0)

您是否尝试过使用puppeteer。它使用chrome及其超快的速度

他们的自述文件中有一个简单的示例代码

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});

  await browser.close();
})();

在此处运行此代码:https://try-puppeteer.appspot.com/

还可以在文档https://github.com/GoogleChrome/puppeteer/blob/v1.15.0/docs/api.md#pagescreenshotoptions

中找到有关screenshot命令的更多信息。

祝你好运!