Khtml2png 网页截图程序使用方法 - Linux环境下khtml2png网页快照技术的应用
khtml2png是一种常用的命令行网页截图程序,不过需要安装庞大的KDE。
使用方法: khtml2png --width 1024 --height 768 --scaled-width 320 --scaled-height 240 http://www.oschina.net/ oschina.png
khtml2png is a command line program to create PNG images out of webpages. Despite the name, it can also produce JPEG images.
分享:
http://khtml2png.sourceforge.net/
或者
http://www.sourceforgecn.net/Projects/k/kh/khtml2png/
Requirements:
g++
KDE 3.x
kdelibs for KDE 3.x (kdelibs4-dev)
zlib (zlib1g-dev)
cmake
我以centos5.2为例
Khtml2png基于KDE,要用到Konqueror浏览器
安装必须的包
yum install kdelibs kdelibs-devel gcc gcc-c++ automake autoconf nano zlib zlib-devel kdelibs kdelibs-devel
yum groupinstall "X Window System" "KDE (K Desktop Environment)"
yum install Xvfb xorg "xorg-x11-font*"
yum install qt*
安装中文语言包,否则中文字符乱码
yum install fonts-chinese fonts-ISO8859-2-75dpi
【测试经验】centos 5.2 locale命令下显示的编码必须是zh_cn.UTF-8. 否则kde自带的浏览器对URL中文件
存储编码为UTF-8的情况下,生成的图片是乱码。
编译安装cmake
wget http://www.cmake.org/files/v2.6/cmake-2.6.2.tar.gz
tar -zxvf cmake-2.6.2.tar.gz
cd cmake-2.6.2
./bootstrap
make
make install
重启服务器
安装khtml2png
wget http://nchc.dl.sourceforge.net/sourceforge/khtml2png/khtml2png-2.7.6.tar.gz
修改configure 文件 指定qt库
cmake -G KDevelop3 -D QT_INCLUDE_DIR:PATH=/usr/lib/qt-3.3/include .
cmake -D QT_INCLUDE_DIR:PATH=/usr/lib/qt-3.3/include .
./configure
make
make install
启动后台虚拟图形终端
Xvfb :2 -screen 0 1024×768x24&
export DISPLAY=localhost:2.0
[如01中出错,请用下列方式:
1、输入命令rpm -qa|grep xorg-x11-server-extra,发现已经安装了。
2、输入命令ps -aux|grep Xvfb,发现没有输出。
3、使用man xvfb,查询说明。
4、按照例子输入命令,提示出错,错误大概的意思就是服务已经开启什么的。
5、vi /etc/inittab,发现启动模式为5。
6、修改启动模式,改为3
7、重启
8、再次输入ps -aux|grep Xvfb,果然发现已经启动了。
如未安装Xvfb,运行 yum install Xvfb 安装
Xvfb 命令格式:Xvfb :1 -screen 0 800x600x16 -fbdir /var/tmp &
]
修改kde设置
[root@aaa ~]vi ~/.kde/share/config/kcookiejarrc
增加
[Cookie Dialog]
PreferredPolicy=2
ShowCookieDetails=false
[Cookie Policy]
CookieDomainAdvice=
CookieGlobalAdvice=Accept
[root@aaa ~]~/.kde/share/config/khtmlrc
复制代码增加 [Java/JavaScript Settings]
PopupBlockerPassivePopup=false
OK
khtml2png2 –get-body -w 1024 -h 800 http://www.sysbus.com/ sysbus.png
复制代码示例: FROM: http://www.askwan.com/read.php?133
Xvfb :2 -screen 0 1024x768x24&
export DISPLAY=localhost:2.0
/etc/rc.d/init.d/xfs restart
/usr/bin/X :1 -screen 0 1024x768x24&
khtml2png2 --display :1 --get-body -w 400 -h 300 http://www.baiup.com/ ooopic13.png
复制代码执行上述指令后,桌面会打开一个浏览器窗口,载入目标页面,截图完成后自行关闭。在没有X或者是ssh连接服务器的情况下,需要再做点别的事情。启动xfs daemon和X Server /etc/rc.d/init.d/xfs restart
/usr/bin/X :2 -screen 0 1024x768x24&
复制代码之后在khtml2png2的指令上加一条 --display :1
即可
批量截图 khtml2png2 --display :1 --width 1024 --height 800 http://www.baiup.com/ ooopic.png
khtml2png2 --display :1 --get-body --width 1024 --height 300 http://www.baiup.com/ huang12.png
/usr/local/bin/khtml2png2 --height 1024 --width 768 http://www.baiup.com ooopic.png
/etc/rc.d/init.d/xfs restart
/usr/bin/X :1 &
cp /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/kde3/plugins
khtml2png网页快照技术的应用设置完成.