Khtml2png 網(wǎng)頁(yè)截圖程序使用方法 - Linux環(huán)境下khtml2png網(wǎng)頁(yè)快照技術(shù)的應(yīng)用
khtml2png是一種常用的命令行網(wǎng)頁(yè)截圖程序,不過(guò)需要安裝龐大的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*
安裝中文語(yǔ)言包,否則中文字符亂碼
yum install fonts-chinese fonts-ISO8859-2-75dpi
【測(cè)試經(jīng)驗(yàn)】centos 5.2 locale命令下顯示的編碼必須是zh_cn.UTF-8. 否則kde自帶的瀏覽器對(duì)URL中文件
存儲(chǔ)編碼為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
重啟服務(wù)器
安裝khtml2png
wget http://nchc.dl.sourceforge.net/sourceforge/khtml2png/khtml2png-2.7.6.tar.gz
修改configure 文件 指定qt庫(kù)
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
啟動(dòng)后臺(tái)虛擬圖形終端
Xvfb :2 -screen 0 1024×768x24&
export DISPLAY=localhost:2.0
[如01中出錯(cuò),請(qǐng)用下列方式:
1、輸入命令rpm -qa|grep xorg-x11-server-extra,發(fā)現(xiàn)已經(jīng)安裝了。
2、輸入命令ps -aux|grep Xvfb,發(fā)現(xiàn)沒(méi)有輸出。
3、使用man xvfb,查詢(xún)說(shuō)明。
4、按照例子輸入命令,提示出錯(cuò),錯(cuò)誤大概的意思就是服務(wù)已經(jīng)開(kāi)啟什么的。
5、vi /etc/inittab,發(fā)現(xiàn)啟動(dòng)模式為5。
6、修改啟動(dòng)模式,改為3
7、重啟
8、再次輸入ps -aux|grep Xvfb,果然發(fā)現(xiàn)已經(jīng)啟動(dòng)了。
如未安裝Xvfb,運(yùn)行 yum install Xvfb 安裝
Xvfb 命令格式:Xvfb :1 -screen 0 800x600x16 -fbdir /var/tmp &
]
修改kde設(shè)置
[root@aaa ~]vi ~/.kde/share/config/kcookiejarrc
增加
[Cookie Dialog]
PreferredPolicy=2
ShowCookieDetails=false
[Cookie Policy]
CookieDomainAdvice=
CookieGlobalAdvice=Accept
[root@aaa ~]~/.kde/share/config/khtmlrc
復(fù)制代碼增加 [Java/JavaScript Settings]
PopupBlockerPassivePopup=false
OK
khtml2png2 –get-body -w 1024 -h 800 http://www.sysbus.com/ sysbus.png
復(fù)制代碼示例: 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
復(fù)制代碼執(zhí)行上述指令后,桌面會(huì)打開(kāi)一個(gè)瀏覽器窗口,載入目標(biāo)頁(yè)面,截圖完成后自行關(guān)閉。在沒(méi)有X或者是ssh連接服務(wù)器的情況下,需要再做點(diǎn)別的事情。啟動(dòng)xfs daemon和X Server /etc/rc.d/init.d/xfs restart
/usr/bin/X :2 -screen 0 1024x768x24&
復(fù)制代碼之后在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網(wǎng)頁(yè)快照技術(shù)的應(yīng)用設(shè)置完成.