有什么方法可以用PHP截图一个网站,然后保存到一个文件?
当前回答
您可以使用简单的无头浏览器,如PhantomJS抓取页面。
你也可以在PHP中使用PhantomJS。
看看这个php脚本。看看这里https://github.com/microweber/screen
这里是API- http://screen.microweber.com/shot.php?url=https://stackoverflow.com/questions/757675/website-screenshots-using-php
其他回答
我发现这是最好和最简单的工具:ScreenShotMachine。这是一项付费服务,但你可以得到100张免费截图,你还可以花20美元再买2000张,所以这是一笔相当划算的交易。它有一个非常简单的用法,你只是使用一个URL,所以我写了这个小脚本来保存一个基于它的文件:
<?php
$url = file_get_contents("http://api.screenshotmachine.com/?key={mykey}&url=https://stackoverflow.com&size=X");
$file = fopen("snapshots/stack.jpg", "w+");
fwrite($file, $url);
fclose($file);
die("saved file!");
?>
他们有一个非常好的文档,所以你一定要看看。
Cutycapt保存网页的大多数图像格式(jpg,png..)下载它从你的突触,它比wkhtmltopdf工作得更好
不直接。像Selenium这样的软件有这样的特性,可以用PHP控制,但有其他依赖(比如在你想要截图的浏览器的计算机上运行基于java的服务器)
我用的是bluga。该api允许你每月免费拍摄100张快照,但有时它会为单个页面使用超过1个积分。我刚刚升级了drupal模块,Bluga WebThumbs到drupal7,它允许你在模板或输入过滤器中打印缩略图。
使用这个api的主要优点是,它允许你指定浏览器尺寸,以防你使用自适应css,所以我使用它来获得移动和平板电脑布局以及常规布局的渲染。
有以下语言的api客户端:
PHP, Python, 红宝石, Java, net c#, Perl 和Bash (shell脚本看起来需要perl)
好吧,PhantomJS是一个可以很容易地放在服务器上并与php集成的浏览器。您可以在WDudes中找到代码。他们包括了更多的功能,如指定图像大小,缓存,下载为文件或显示在img src等。
<img src=”screenshot.php?url=google.com” />
URL参数
宽度和高度:截图.php?url=google.com&w=1000&h=800 裁剪: screenshot.php ? url = google.com&w = 1000 h = 800 &clipw = 800 &cliph = 600 关闭缓存并加载新截屏: screenshot.php ? url = google.com&cache = 0 下载图片:screenshot.php?url=google.com&download=true
你可以在这里看到教程:使用PHP不带API抓取一个网站的截图
推荐文章
- 致命错误:未找到类“SoapClient”
- 我目前使用的是哪个版本的CodeIgniter ?
- 合并两个PHP对象的最佳方法是什么?
- 如何使HTTP请求在PHP和不等待响应
- 发送附件与PHP邮件()?
- 如何获得当前的路线在Symfony 2?
- 用PHP删除字符串的前4个字符
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- 一个函数的多个返回值
- 在PHP中使用foreach循环时查找数组的最后一个元素
- 检查数组是否为空
- PHP DOMDocument loadHTML没有正确编码UTF-8
- PHP在个位数数前加上前导零
- PHPMailer字符编码问题
- 删除多个空白空间