设为首页 收藏本站
查看: 960|回复: 0

[经验分享] PHP怎样抓屏?

[复制链接]

尚未签到

发表于 2017-3-26 11:20:53 | 显示全部楼层 |阅读模式
Windows下用PHP做网页截图
  在Apache的服务属性里,“登录”选项卡中选中“允许服务与桌面交换”就行了!

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Width = 500;
$browser->Height = 500;
$browser->Navigate("http://www.un.org");
/* Still working? */
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
?>
  运行这段代码的时候服务器上会弹出一个IE窗口并自动打开指定的网站,截屏后窗口自动关闭,相当傻瓜!

Linux下用PHP做网页截图
  
上alexa 时,总能看到alexa 显示被查询网站的首页截图,这个截图是怎么实现的呢。

通过察看页面内容,发现原来是通过调用amazon的服务程序
获得的。

http://ast.amazonaws.com/Xino/?Action=Redirect&Service=AlexaSiteThumbnail&Url=baidu.com&

AWSAccessKeyId=1FVZ0JNEJDA5TK457CR2&Signature=tz4xyqDNcSf8A1v%2BpDo4todvM9c%3D&

Size=Small&Timestamp=2008-03-04T06%3A04%3A47.422Z&

DefaultImage=http%3A%2F%2Fclient.alexa.com%2Fcommon%2Fimages%2Fnoimages.gif

如果想在自己的网站中做出这种效果,完全可以在amazon申请一个ID获得这样的调用接口来实现。

但是,这样怎么符合探究精神?所以,经过一番翻箱倒柜,找到下面的方法来自己实现网站的首页截图。


实现网站首页页面缩略图制作。

步骤:

1. 启动一个页面抓取工具,抓取选定的网站首页;

2.存储抓取的页面截图到服务器
上;

3.按照需要显示的大小处理抓取的页面截图;

4.把结果展现给用户


综上所述,其实关键是在于需要有一个稳定的抓取工具,经过在网上寻找,找到下面几个工具。


在windows环境下,可以考虑这个工具软件来抓页面截图:

IECapt.exe

在linux环境下,可以考虑这个工具软件来抓页面截图:

HTML2Image

获得抓取工具之后,就可以采用任何一种服务器语言
编写程序,调用这个抓取工具,然后把抓取结果返回给用户。

下面是利用IECapt.exe并结合PHP抓取网站截图的例子。

在Windows/Apache2.2/Php5.2.5 下运行通过。


参考资料:

1.http://www.zubrag.com/scripts/website-thumbnail-generator.php


2.http://www.guangmingsoft.net/htmlsnapshot/html2image.htm



官方url:http://www.guangmingsoft.net/htmlsnapshot/html2image.htm

Linux
kernel- 2.2.14及以上: 安装必需lib及相关软件

yum install -y glibc gtk+ fontconfig  cairo libpixman pango pango-devel

下载html2image

wget http://www.guangmingsoft.net/htmlsnapshot/html2image.i386.tar.gz


tar xvzf html2image.i386.tar.gz

CD html2image

设置LD_LIBRARY_PATH路径

export LD_LIBRARY_PATH=./

mkdir /usr/X11R6/lib

ln - s /usr/share/X11 /usr/X11R6/lib/X11

运行Xvfb

./Xvfb :1 -screen 0 640x480x24 -nolisten tcp -audit 4 -auth X1.cfg & export DISPLAY=:1

生成图片

./html2image www.google.com
a.jpg

可忽略的错误:

error opening security policy file /usr/X11R6/lib/X11/xserver/SecurityPolicy

Could not init font path element /usr/X11R6/lib/X11/fonts/TTF/, removing from list!

Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list!

Could not init font path element /usr/X11R6/lib/X11/fonts/Type1/, removing from list!

Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from list!

生成1024x768 格式 容量

jpg 871K

gif 4.12M

png 1.13M

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-355566-1-1.html 上篇帖子: php编程基础(三)函数 下篇帖子: PHP Hessian协议研究学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表