我正在尝试使用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);
});
答案 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
命令的更多信息。
祝你好运!