php 抓取网页生成图片(用php如何实现回答这个得客户端跟服务端结合起来了)
优采云 发布时间: 2022-01-22 05:09php 抓取网页生成图片(用php如何实现回答这个得客户端跟服务端结合起来了)
现在需要从网页的一部分(用户面板,相当复杂)生成图片。我怎样才能使用 php 来实现这一点?
回答
这是客户端和服务器的组合。屏幕截图是客户端的东西。保存是 PHP 的事情。
使用 ActiveX 或 Java Applet 或 JavaScript
JavaScript 的一个例子......
Petal 的小书签实现了 JavaScript 截图功能
这可以使用 canvas 标签来完成,但这不是一个图像,只是一个标签。
如果要实现真实的图片,需要使用PHP的gd库或者Imagick在服务器端生成图片。上面的解决方案是不可行的,因为截图本质上是客户端行为。
让我们使用 PantomJS,它相当于一个没有视图的 WebKit 浏览器,可以在服务器端渲染网页。
1 IECapt 但需要 win 服务器,特别是 google
2 linux下可以使用wkhtmltopdf将url网页保存为pdf,然后转换pdf 2 jpg
3 imagegrabwindow手册有demo
大胆猜测,楼主可能会在一些具体有价值的操作中做备份。
很容易想到用PHP直接解析HTML代码,然后用常规的GD生成图片。遗憾的是,PHP 无法解析 HTML 代码,或者没有相对完善的解析 HTML 扩展。看来问题的症结在于解析 HTML 代码。
个人可以考虑这个思路:先标记具体需要截图的DIV-ID块,用PHP想办法获取这个块的代码。方法很多;然后根据CSS规则一一解析这个block中的代码,既然是自己用的,只能支持对绘图有用的CSS样式,然后在地图上用GD画出来,一切就这么简单可能的。
当然,有一种本土方法可能是最有效的。它只是一个用户面板页面。可以手动把这个页面截图,然后用绘图工具把可变部分去掉,保存为图片作为基板,供GD日后生成图片。然后稍微改变你的程序。生成用户面板时,可以传入一些信息,也就是变量部分,写入到GD画面中。写入时,只需要指定要写入信息的像素位置即可。此方法完全绕过 HTML 解析,可能是一种更快的方法。缺点是没有可重用性。
PHP普通码农,欢迎拍砖。
而 (1) {
printf('你好,世界!');
}