我想要通过php、java等程序自动为业务中的不同网站进行网页截图保存。通过网络上资料阅读,程序语言本身无法实现该功能,需要其他程序配合。 我的服务器是Linux CentOS 6.x,因此在这里我只记录在CentOS下面的过程和问题 主要用到以下软件工具: 1.Qt47:这个是CutyCapt底层架构,CutyCapt依赖Qt47(必须) 2.CutyCapt:进行网页截图的工具(必须) 3.x-server:需要配合CutyCapt进行截图(必须) 4.中文包:对中文网站截图,需要中文包的支持(必须) 5.ImageMagick:截图后对图片进行压缩等处理(可选) 安装过程步骤 一、先安装Qt47 增加qt47的下载源 Java代码  收藏代码 vi /etc/yum.repos.d/atrpms.repo 插入以下内容并保存 Java代码  收藏代码 [atrpms] name=CentOS $releasever – $basearch – ATrpms baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms gpgcheck=1 enabled=1 [atrpms-testing] name=CentOS $releasever – $basearch – ATrpms testing baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/testing gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms gpgcheck=1 enabled=1 安装相关依赖包 Java代码  收藏代码 yum update yum install qt47 yum install qt47-devel yum install qt47-webkit yum install qt47-webkit-devel 可能的错误1 引用 warning: qt44-x11-4.4.3-10_4.el5.x86_64.rpm: Header V4 DSA signature: NOKEY, key ID 66534c2b 解决 引用 yum -y install qt-devel* 可能的错误2:某些冲突conflict 引用 qt47-x11 conflicts with qt-x11 qt47-x11 conflicts with qt-x11 解决:通过yum remove 卸载冲突的内容 引用 yum remove qt-devel yum remove qt-x11 二、安装 CutyCapt 下载代码,这里需要用到SVN,如果没有安装,可以使用命令安装:yum install subversion Java代码  收藏代码 cd /data0/software #目录根据自己的需求情况而不同 svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt mv cutycapt/CutyCapt /usr/local/cutycapt #目录根据自己的需求情况而不同 cd /usr/local/cutycapt 编译安装 Java代码  收藏代码 qmake make 可能的错误1 引用 -bash: qmake: command not found 解决:使用命令 引用 qmake-qt47 可能的错误2 引用 make: *** [CutyCapt] Error 1 解决: 引用 yum update sqlite 三、下载x-server Java代码  收藏代码 wget http://www.flexthinker.com/wp-content/uploads/2009/11/xvfb-run.sh.txt mv ./xvfb-run.sh.txt/usr/local/cutycapt/xvfb-run.sh chmod u+x /usr/local/CutyCapt/xvfb-run.sh 四,安装中文包 Java代码  收藏代码 yum install fonts-chinese 五,安装ImageMagick Java代码  收藏代码 yum install ImageMagick 六,运行 CutyCapt进行截图:执行以下命令,如果没有错误,就会在当前目录下面保存截图 Java代码  收藏代码 /usr/local/cutycapt/xvfb-run.sh --server-args="-screen 0, 1024x768x24"/usr/local/cutycapt/CutyCapt --url=http://www.163.com --out=163.jpg Q:出现-bash: xvfb-run: command not found 或  xauth : command not found A:安装 yum install Xorg xauth xorg-x11-fonts*(Xorg,xauth,xorg-x11-fonts* 这是三个不同的工具,每个都需要单独运行yum install来安装) Q:错误提示:"mktemp: too few X's in template `Xauthority'." A: 找到 AUTHFILE=$(mktemp -p "$XVFB_RUN_TMPDIR" Xauthority) 修改为:AUTHFILE=$(mktemp -p "$XVFB_RUN_TMPDIR" Xauthority.XXXXXXXX) Q:错误提示:CutyCapt: cannot connect to X server :99 A: 确认server-args参数是否正确, 修改xvfb-run.sh脚本中SERVERNUM=99 改为SERVERNUM=0 Q:截出来的图片没有中文字,需要安装中文字体 A: yum install  cjkuni-ukai-fonts cjkuni-uming-fonts -y 七、处理截图 由于截屏的是整个网站的页面,只需要第一屏幕   system('xvfb-run --server-args="-screen 0, 1024x768x24" CutyCapt --min-width=1024 --url=http://wx.shaohualee.com/addon/UserCenter/Info/my_next.html --out=/var/www/weixin/Upload/abc.png')

分类: web

标签: