捕获浏览器内容的截图(网站)

Sch*_*ken 23 javascript screenshot google-chrome image-processing webpage-screenshot

我的目标是拥有一个网站的形象(是的,就这么简单).我知道有像html2canvas这样的工具.但是,我不希望客户端浏览器呈现屏幕截图.

一个原因是我使用带有webview的chrome扩展,其基本上与行为相似iFrame.出于安全原因,为包含其的网站呈现屏幕截图iFrame不起作用.

我也知道他们正致力于本机支持捕获网站截图,但我想要一个跨浏览器解决方案而不依赖于浏览器的可能性.所有这些都发生在服务器上,所以它应该可以通过命令行执行.

我现在正在做的是:

  1. 通过命令行打开浏览器
  2. 通过命令行将焦点切换到浏览器窗口
  3. 通过命令行制作屏幕截图(mac上的screencapture,Linux上的scrot)

在这个基本级别进行操作的缺点是图像包含状态栏,浏览器插件等等.实际上我只想拥有实际的网站内容而没有所有这些特定于应用程序的东西.

  • 最糟糕的解决方案是对每个浏览器硬编码相对于窗口的内容的0 | 0位置.这很糟糕(原因很明显).
  • 我提出的另一个解决方案是:告诉浏览器(我可以通过套接字与插件对话)在x:0; y:0;处添加类似QR码的内容,将屏幕截图发送到图像处理服务器.之后删除QR码并再次发送屏幕截图.然后我知道相对于0 | 0的每个点,但它也不那么优雅.

最好的事情是命令行工具,它以某种方式让我确定我想要捕获图像的应用程序的哪个部分.

一个例子是这个插件的Firefox该服务器端工具或所有这些工具提供不同的浏览器和操作系统喜欢的网站截图这样.我想知道他们如何摆脱浏览器特定的GUI元素.

增加:

我不知道我是否足够清楚,但我想要一个特定浏览器内容的截图,但没有浏览器特定的GUI元素.这意味着运行无头浏览器的应用程序对我没用.因为无头浏览器有自己的引擎.我特别希望有一个例如Firefox版本x的屏幕截图.

小智 8

你知道Selenium吗?它是一个实际打开特定浏览器并运行脚本测试的测试工具.它也可用于截取屏幕截图.

这可能是您问题的解决方案.