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網頁快照技術的應用設置完成.