2023-10-30 08:00:01

网站截图

有什么方法可以用PHP截图一个网站,然后保存到一个文件?


当前回答

我在Windows上,所以我能够使用imagegrabwindow函数在阅读stephan在这里的提示后。我添加了裁剪(以消除浏览器标题、滚动条等)和调整大小以获得最终图像。这是我的代码。希望这能帮助到别人。

其他回答

自从PHP 5.2.2以来,完全可以用PHP捕获一个网站!

imagegrabscreen -捕获整个屏幕

<?php
$img = imagegrabscreen();
imagepng($img, 'screenshot.png');
?>

imagegrabwindow -使用窗口句柄抓取一个窗口或其客户端区域(COM实例中的HWND属性)

<?php
$Browser = new COM('InternetExplorer.Application');
$Browserhandle = $Browser->HWND;
$Browser->Visible = true;
$Browser->Fullscreen = true;
$Browser->Navigate('http://www.stackoverflow.com');

while($Browser->Busy){
  com_message_pump(4000);
}

$img = imagegrabwindow($Browserhandle, 0);
$Browser->Quit();
imagepng($img, 'screenshot.png');
?>

编辑:注意,这些功能只在Windows系统上可用!

您可以使用https://grabz.it解决方案。

它有一个非常灵活的PHP API,可以以不同的方式调用,例如从cronjob或PHP网页。

为了实现它,你首先需要获得应用密钥和秘密,并下载(免费的)SDK。

并给出了实现的实例。首先初始化:

include("GrabzItClient.class.php");

// Create the GrabzItClient class
// Replace "APPLICATION KEY", "APPLICATION SECRET" with the values from your account!
$grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret");

截图示例:

// To take a image screenshot
$grabzIt->URLToImage("http://www.google.com");  
// Or to take a PDF screenshot
$grabzIt->URLToPDF("http://www.google.com");
// Or to convert online videos into animated GIF's
$grabzIt->URLToAnimation("http://www.example.com/video.avi");
// Or to capture table(s)
$grabzIt->URLToTable("http://www.google.com");

其次是储蓄。你可以使用两个保存方法之一,保存如果公共可访问的回调句柄可用,SaveTo如果没有。详细信息请查看文档。

不直接。像Selenium这样的软件有这样的特性,可以用PHP控制,但有其他依赖(比如在你想要截图的浏览器的计算机上运行基于java的服务器)

在网上冲浪了很多之后,我发现了这个。

PPTRAAS >一个免费的工具,通过传递你的URL作为参数来捕捉屏幕截图

它们提供了多种选择,只需点击URL即可。

获取全页截图 https://pptraas.com/screenshot?url={YOU URL HERE} 获取特定大小的页面截图 https://pptraas.com/screenshot?url={YOU URL HERE}&size=400,400 用户甚至可以将页面转换为pdf格式 https://pptraas.com/pdf?url={YOU URL HERE}

我用的是bluga。该api允许你每月免费拍摄100张快照,但有时它会为单个页面使用超过1个积分。我刚刚升级了drupal模块,Bluga WebThumbs到drupal7,它允许你在模板或输入过滤器中打印缩略图。

使用这个api的主要优点是,它允许你指定浏览器尺寸,以防你使用自适应css,所以我使用它来获得移动和平板电脑布局以及常规布局的渲染。

有以下语言的api客户端:

PHP, Python, 红宝石, Java, net c#, Perl 和Bash (shell脚本看起来需要perl)