如何使用 php 截取已加载网页的屏幕截图? [复制]

Posted

技术标签:

【中文标题】如何使用 php 截取已加载网页的屏幕截图? [复制]【英文标题】:how to take a screenshot of a loaded webpage using php? [duplicate] 【发布时间】:2017-04-04 00:36:36 【问题描述】:

我需要截取几个网页并使用 php 将它们保存在一个文件夹中。

我想使用 php 脚本执行此操作,有没有办法可以在网站完全加载后呈现这些网页并截取特定区域的屏幕截图? - 我正在使用窗户。

我尝试使用 wkhtmltoimage 但它需要低质量的屏幕截图,并且它会在整个页面加载之前进行屏幕截图,所以网页的某些图像没有出现在屏幕截图中,有没有办法使用 php 来做到这一点?

请帮助php专家。谢谢

【问题讨论】:

php?使用客户端语言 您可以使用“无头浏览器”。例如,这些也用于测试。 php 是错误的工作工具,尝试可以嵌入网络浏览器的工具 考虑使用具体示例询问如何单独解决 wkhtmltoimage 的问题。 【参考方案1】:

PHP 在服务器端运行,因此为了能够截取屏幕截图,您需要一些东西来呈现 HTML(类似浏览器的脚本)并生成它的图像。这个脚本会这样做(wkhtmltoimage 也是):

HTML2PS: http://freecode.com/projects/html2ps_php

但我仍然认为最好的解决方案是使用 javascript。当然,只有客户端可以访问屏幕截图,也许您可​​以将图像上传到服务器。客户端浏览器比任何类型的服务器脚本都要好。

如果是这样,我建议使用 HTML2CANVAS:

HTML2CANVAS:http://html2canvas.hertzen.com/

最好的服务器解决方案将是一个带有 google chrome 安装和一个本地脚本来截取屏幕截图的 linux 发行版。这是获取可能包含 javacript/HTML5/animations 和其他难以呈现的内容的网页的准确屏幕截图的唯一方法。

【讨论】:

【参考方案2】:

JavaScript / HTML5 / Canvas

仅在 PHP 中编写代码可能很困难。在你的情况下,我想我会遵循这些指示:

Using HTML5/Canvas/JavaScript to take screenshots

PHP

或者如果你真的想只使用 PHP,它应该可以帮助你:

Website screenshots using PHP

【讨论】:

以上是关于如何使用 php 截取已加载网页的屏幕截图? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何确定 Google Maps Tiles 是不是已加载

ActiveX网页截图插件

使用 Selenium 截取屏幕截图元素? [复制]

在 UI 测试期间,如何使用 Xcode 7 截取我的 UI 截图?

您如何以编程方式在 Android ICS 及更高版本上截取屏幕截图?

可以在打开时截取 <select> 的屏幕截图