从网页创建图像

Creating an image from a webpage

我正在研究一种方法来检测我网站上的污损。想法是抓取整个网站,并针对每个页面截取屏幕截图或将网站渲染为图像,并将其与上次检查该页面时进行比较。

我正在寻找一种方法将整个网页(HTML、CSS、JS)转换为图像,如屏幕截图,无论语言是什么(但我更喜欢Java、Python 或 C#)

我需要它在服务器上快速可用。

我已经在 Java 中尝试了以下方法:

我认为解决方案是一种 Web 引擎的包装器,但我没有找到任何相关信息(至少在 Java 中)。有人告诉我 PhantomJS 可以满足这种需求,对吗?

完美的结果是创建类似这样的东西:http://www.page2images.com/home

使用可以通过脚本或命令行选项控制的浏览器,例如 phantomjs。该文档包含如何从 URL 制作屏幕截图的示例。

您链接的网站提供了一些很好的休息方式API来执行任务:这对您来说不是一个可行的选择?

Selenium 是您最好的选择。根据您的页面内容(即 JS 库等),这可能需要一些时间,但您可以通过 cron 每晚使用 运行 脚本自动执行此操作。或者使用屏幕。

它有丰富的断言和模拟鼠标事件语言,以及回归测试的方法and/or 监视一组页面的状态。

祝你好运。

如果没有 GUI,可能无法执行此类操作。

如果您对 GUI 和相关的东西不是很在意,可以使用 JavaFX Webview 并使用以下代码截取节点的屏幕截图

WritableImage image = webView.snapshot(null, null);
BufferedImage bufferedImage = SwingFXUtils.fromFXImage(image, null);
....

参考文献:

WebView#snapshot

SwingFXUtils#fromFXImage