从网页创建图像
Creating an image from a webpage
我正在研究一种方法来检测我网站上的污损。想法是抓取整个网站,并针对每个页面截取屏幕截图或将网站渲染为图像,并将其与上次检查该页面时进行比较。
我正在寻找一种方法将整个网页(HTML、CSS、JS)转换为图像,如屏幕截图,无论语言是什么(但我更喜欢Java、Python 或 C#)
我需要它在服务器上快速可用。
我已经在 Java 中尝试了以下方法:
- CssBox,但渲染不够好(没有 JS)
- Selenium Web 驱动程序,但它太慢了(需要打开 firefox、显示页面等...)并且没有 GUI 无法使用
我认为解决方案是一种 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);
....
参考文献:
我正在研究一种方法来检测我网站上的污损。想法是抓取整个网站,并针对每个页面截取屏幕截图或将网站渲染为图像,并将其与上次检查该页面时进行比较。
我正在寻找一种方法将整个网页(HTML、CSS、JS)转换为图像,如屏幕截图,无论语言是什么(但我更喜欢Java、Python 或 C#)
我需要它在服务器上快速可用。
我已经在 Java 中尝试了以下方法:
- CssBox,但渲染不够好(没有 JS)
- Selenium Web 驱动程序,但它太慢了(需要打开 firefox、显示页面等...)并且没有 GUI 无法使用
我认为解决方案是一种 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);
....
参考文献: