2012-10-16

【軟體】CutyCapt : 網頁截圖

上面這張圖就是用 CutyCapt 抓下來的。
這樣子要做網頁縮圖,就簡單啦。

在 Ubuntu 上似乎簡單很多,但我是安裝在 SLES 上面。
所以就亂查資料,然後亂TRY ,所以可能方法都不是很正確,因此看看就好。

官方網站:CutyCapt
CutyCapt is a Qt and WebKit based command-line utility that captures WebKit's rendering of a web page into various bitmap, vector, and other file formats.

這裡就簡單記錄一下我怎麼裝的。

我先去將Source 檔抓下來,還有 SPEC 檔。
從這裡:CutyCapt Source Files
然後Build 成 rpm。除了 cutycapt.changes ,其它三個檔都要。
怎麼包 RPM 就不多說了。

cutycapt.spec 的部份要改一下
# 將 BuildRequires 都Mark 掉
#BuildRequires:  pkgconfig(QtCore)
#BuildRequires:  pkgconfig(QtGui)
#BuildRequires:  pkgconfig(QtNetwork)
#BuildRequires:  pkgconfig(QtSvg)
#BuildRequires:  pkgconfig(QtWebKit)
不然在build 的時候會一直說缺少這些東西,
然後 cutycapt.1 跟 cutycapt-0.0+svn7.tar.bz2 都要放在 SOURCES 目錄中
Build 完 RPM 後,就可以安裝啦。

裝好後直接執行
# cutycapt --url=http://www.example.org --out=example.png
出現錯誤訊息
cutycapt: cannot connect to X server

這是因為沒有 X Server,所以要透過 Xvfb 來執行。
參考:centos下 cutycapt 安裝方法總結及dbug
# wget http://www.flexthinker.com/wp-content/uploads/2009/11/xvfb-run.sh.txt -O xvfb-run.sh
# chmod u+x ./xvfb-run.sh
# cp xvfb-run.sh /usr/bin/

接著執行
# xvfb-run.sh /usr/bin/cutycapt --url=http://google.com --out=/tmp/hello.png
結果又出現錯誤訊息
mktemp: too few X's in template `Xauthority'

好麻煩,怎麼一直錯…
這個要去改 /usr/bin/xvfb-run.sh 的檔案內容,在154 行
參考:Running an X-app without an X-server
# AUTHFILE=$(mktemp -p "$XVFB_RUN_TMPDIR" Xauthority)
# 改成下行
AUTHFILE=$(mktemp -p "$XVFB_RUN_TMPDIR" Xauthority.XXXXXXXX)

然後再次執行指令,這次就成功的將圖抓下來啦,請見最上面的圖 ( Google 首頁 )。
之後只要用PHP 利用 exec 去執行就可以抓到縮圖啦。
不過這個抓縮圖,會把網頁的內容全部抓下來,
所以圖片長度常常會超過你要的,這時就可以再用 convert 去截你要的大小。


終於裝好啦。



0 comments:

張貼留言