Str*_*rae 275
最后编辑时间:7年后,我仍然得到upvotes这个答案,但我想这一块现在更加精确.
当然可以,但你需要用一些东西呈现页面.如果你真的只想使用php,我建议你HTMLTOPS,它呈现页面并将其输出到ps文件(ghostscript),然后,转换为.jpg,.png,.pdf ..可能会慢一点复杂页面(并不支持所有CSS).
否则,您可以使用wkhtmltopdf以pdf,jpg输出html页面,无论如何..接受CSS2.0,使用webkit(safari的包装器)来呈现页面..所以应该没问题.您还必须在服务器上安装它.
更新现在,使用新的HTML5和JS功能,还可以使用JavaScript将页面呈现为画布对象.这里有一个很好的库:Html2Canvas,这是同一作者的实现,以获得像G +这样的反馈.将dom渲染到画布后,您可以通过ajax发送到服务器并将其另存为jpg.
编辑:您可以使用imagemagick工具将pdf转换为png.我的wkhtmltopdf版本不支持图像.例如convert html.pdf -append html.png.
编辑:这个小shell脚本在linux上使用php5-cli和上面提到的工具提供了一个简单但有效的用法示例.
编辑:我现在注意到wkhtmltopdf团队正在开发另一个项目:wkhtmltoimage,它直接为你提供jpg
ste*_*han 87
从PHP 5.2.2 开始,用PHP捕获一个网站是可能的!
imagegrabscreen - 捕获整个屏幕
<?php
$img = imagegrabscreen();
imagepng($img, 'screenshot.png');
?>
Run Code Online (Sandbox Code Playgroud)
imagegrabwindow - 使用Windows句柄(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');
?>
Run Code Online (Sandbox Code Playgroud)
编辑:注意,这些功能仅在Windows系统上可用!
Rik*_*esh 54
如果您不想使用任何第三方工具,我会遇到使用Google Page Insight api的简单解决方案.
只需要用params称它为api screenshot=true.
https://www.googleapis.com/pagespeedonline/v1/runPagespeed?
url=https://stackoverflow.com/&key={your_api_key}&screenshot=true
Run Code Online (Sandbox Code Playgroud)
对于移动站点视图传递&strategy=mobile参数,
https://www.googleapis.com/pagespeedonline/v1/runPagespeed?
url=http://stackoverflow.com/&key={your_api_key}&screenshot=true&strategy=mobile
Run Code Online (Sandbox Code Playgroud)
演示.
bok*_*ora 19
您可以使用像PhantomJS这样的简单无头浏览器来抓取页面.
你也可以使用PhantomJS和PHP.
看看这个做这个的小PHP脚本.看看这里https://github.com/microweber/screen
以下是API- http://screen.microweber.com/shot.php?url=/sf/ask/53037281/
Ada*_*vis 10
它是在Python中,但是通过文档和代码,您可以确切地看到它是如何完成的.如果你可以运行python,那么它是一个现成的解决方案:
请注意,一台机器可以在一台机器上运行,也可以在一台机器上运行其他平台运行虚拟机.
免费,开源,滚动到页面底部,以获取文档,源代码和其他信息的链接.
小智 5
是的.如果你只需要URL的图像试试这个
<img src='http://zenithwebtechnologies.com.au/thumbnail.php?url=www.subway.com.au'>
Run Code Online (Sandbox Code Playgroud)
将url作为参数传递,您将获得更多详细信息的图像,请查看此链接http://zenithwebtechnologies.com.au/auto-thumbnail-generation-from-url.html
好吧,PhantomJS 是一个浏览器,可以很容易地放在服务器上并将其集成到 php 中。您可以在 WDudes 中找到代码。它们包含了更多功能,例如指定图像大小、缓存、下载为文件或在 img src 中显示等。
<img src=”screenshot.php?url=google.com” />
Run Code Online (Sandbox Code Playgroud)
网址参数
宽高:screenshot.php?url=google.com&w=1000&h=800
裁剪:screenshot.php?url=google.com&w=1000&h=800&clipw=800&cliph=600
禁用缓存并加载新的 screesnhot:
screenshot.php?url=google.com&cache=0
下载图片:screenshot.php?url=google.com&download=true
您可以在此处查看教程:Capture Screenshot of a Website using PHP without API
有很多选择,它们都有自己的优点和缺点。以下是按实施难度排序的选项列表。
优点
缺点
优点
缺点
优点
缺点
优点
缺点
免责声明:我是 ApiFlash 的创始人。我已尽力提供诚实而有用的答案。