我的目标是拥有一个网站的图像(是的,很简单)。
我知道有像
html2canvas这样的工具。但是我不希望客户端浏览器渲染屏幕截图。
一个原因是我使用带有webview的chrome扩展,其基本上与iFrame相似。为了安全起见,渲染包含iFrame的网站的屏幕截图不起作用。
我也知道他们正在致力于natively support capturing website screenshots的能力,但是我想要一个跨浏览器解决方案,而不是依赖浏览器的可能性。所有这些都发生在服务器上,因此应该可以通过命令行执行。
我现在在做的是:
>通过命令行打开浏览器
>通过命令行将焦点切换到浏览器窗口
>通过命令行制作屏幕截图(Mac上的screencapture,Linux上的scrot)
在这个基本层面上做的这个图像的缺点是包含状态栏,浏览器插件等等。实际上,我只想有一个实际的网站内容没有所有这些应用程序特定的东西。
>最糟糕的解决方案是硬编码内容相对于每个浏览器的窗口的0 | 0位置。这是愚蠢的(显而易见的原因)。
>我想出的另一个解决方案是:告诉浏览器(我可以聊聊
通过套接字插入一个插件),在x:0; y:0 ,,中添加像QR码一样的东西,将截图发送到图像处理服务器。
之后,删除QR码并再次发送屏幕截图。然后我
知道每一点相对于0 | 0,但也不是那么优雅。
最好的是一个命令行工具,以某种方式让我确定我想要捕获一个图像的应用程序的哪一部分。
例如this plugin for Firefox或this server-side tool或所有这些工具提供具有不同浏览器和操作系统(如this)的网站截图。我不知道如何摆脱浏览器特定的GUI元素。
加成:
我不知道我是否足够清楚,但是我想要一个特定浏览器的内容截图,但没有浏览器特定的GUI元素。这意味着运行无头浏览器的应用程序对我没有用。因为无头浏览器有自己的引擎。我特别想要有一个例如Firefox版本x。