Php 用于获取在本地主机上运行的网页的屏幕截图的脚本

Php 用于获取在本地主机上运行的网页的屏幕截图的脚本,php,Php,是否有任何脚本可以每天在服务器上运行此网页的自动屏幕截图并存储捕获的图像 除非您正在为其开发软件,否则没有这样的脚本可以自动获取屏幕截图。 您可以做的另一件事是编写python脚本,每天从网页中提取数据并将其存储在文件中,或者您可以使用selenium工具实现此目的。首先让我们定义任务并了解其边界。因为没有简单易行的方法来解决你的问题 要捕获网页的屏幕截图,首先必须呈现它。这是一个相当复杂的过程。您标记了一个PHP,所以很快您就不能仅仅使用PHP来完成它。我建议您简要阅读网页呈现的工作原理。这篇

是否有任何脚本可以每天在服务器上运行此网页的自动屏幕截图并存储捕获的图像


除非您正在为其开发软件,否则没有这样的脚本可以自动获取屏幕截图。
您可以做的另一件事是编写python脚本,每天从网页中提取数据并将其存储在文件中,或者您可以使用selenium工具实现此目的。

首先让我们定义任务并了解其边界。因为没有简单易行的方法来解决你的问题

要捕获网页的屏幕截图,首先必须呈现它。这是一个相当复杂的过程。您标记了一个PHP,所以很快您就不能仅仅使用PHP来完成它。我建议您简要阅读网页呈现的工作原理。这篇文章是了解它的重要来源:

因此,首先需要一些“服务”的组合来呈现页面,然后将其捕获为位图(不管是哪种图形格式)。然后您可以使用PHP(REST或任何其他合适的方式)获得它。粗略地说,您需要一些类似浏览器的系统(或者确切地说是浏览器本身),它将呈现页面并返回位图

如果您正在寻找一些简单实用的无负担解决方案,您有几种解决方案:

  • 要从任何远程页面获取屏幕截图,您可以使用付费API。它有一个有限制的自由选择

  • 要获取屏幕截图和其他相关缩略图数据,您可以使用谷歌的页面速度API。示例代码可以在

  • 使用Google Chrome或Firefox的一些可用扩展(您可以使用JavaScript创建自己的扩展),然后使用其中的数据


  • 有许多用于此目的的软件包,例如

    下面是一个如何使用它的示例:

    假设您已经安装了它

    require './vendor/autoload.php';
    use Screen\Capture;
    
    $url = 'https://example.com'; // webpage you want to capture
    
    $screenCapture = new Capture($url);
    $screenCapture->save('./test'); // test is the name of the screenshot (default type is 'jpg') 
    

    为了正确拍摄网页截图,首先需要确保页面呈现正确,最方便的方法是使用真正的浏览器。 正如其他人提到的,有不同的选择:

  • 您可以使用付费API来实现这一点(在IMHO中浪费金钱)

  • 您可以编写自己的代码来实现这一点(这并不一定简单和安全)

  • 您可以使用现成的工具(主要是命令行工具)

    • cutycapt(cutycapt--url=--out=
    • firefox(firefox-screenshot
    • wkhtmltoimage(作为wkhtmltopdf工具的一部分)
    • Chrome浏览器(谷歌Chrome——无头——禁用gpu——屏幕截图
  • 如果您正在批量执行屏幕截图,则可以运行自己的服务器(例如,)