如何从URL生成网站的屏幕截图

How to generate screenshot of a website from a URL?

本文关键字:网站 屏幕截图 URL      更新时间:2023-09-26

我正在使用Spring MVC开发一个网站。我有一个表格,我问用户的网站的网址。我需要在他输入网址后给他看网站的截图。

我应该在后端还是前端生成图像?

我确实需要在用户的仪表板上向用户显示图像。我无法决定是每次生成它还是将其存储在后端。存储在后端会更好地提高性能,而每次生成它都会向用户显示当前屏幕截图。

看看PhantomJS。您可以通过t命令行生成png屏幕截图。

以下是PhantomJS的脚本,它接受两个输入参数(url和输出文件):

var page = require('webpage').create();
var args = require('system').args;
var web_url = args[1];
var file_name = args[2];
page.viewportSize = { width: 1200, height: 1602 };
page.clipRect = {top:0, left: 0, width: 1200, height: 1602 };
page.open(web_url, 'GET', function () {
page.evaluate(function() {
    document.body.bgColor = 'white';
});
var ret = page.render(file_name);
var exitcode = 0;
if(ret) exitcode = 1;
phantom.exit(exitcode);
});

然后你可以这样调用PhantomJS:

phantomjs scriptfile.js http://www.myweb.com outputfile.png