コマンドラインでWebページのキャプチャーを取る MacOS X 10.6編
コマンドラインでWebページのキャプチャーを取る MacOS X 10.6編
0.改訂履歴
1.はじめに
このドキュメントでは,コマンドラインでWebページをキャプチャーして画像ファイルに保存するweb2pngのインストールと利用方法の手順を
説明する. web2pngは,Safari等で使われているWebKitのCライブラリにPyObjCというObjective
Cとのブリッジを行うライブラリを使用して,Pythonというスクリプト言語でアクセスして動作する.
今回利用した環境はMacOS X 10.6.2で,Xcodeがインストールされており,PythonやPyObjCの環境は予め揃っている.
2.プログラムの入手
- プログラムを入手する.
- このページのインストール方法にある,"Download"のキーワードがリンクになっているのでダウンロードする.
- ダウンロードしたファイルは次の通り.
macbook:Downloads ujpadmin$ ls -la webkit2png-0.5.txt.sh -rw-r--r--@ 1 ujpadmin staff 11656 3 30 10:55 webkit2png-0.5.txt.sh macbook:Downloads ujpadmin$
|
macbook:Downloads ujpadmin$ mv webkit2png-0.5.txt.sh webkit2png.py macbook:Downloads ujpadmin$
|
- 特にスクリプト言語なので,インストール作業は必要ないので,適当なディレクトリに置く.
3.PythonとPyObjCの環境の確認
- web2pngはスクリプト言語のpythonで作られたスクリプトなので,pythonのバージョンを確認する.
macbook:Downloads ujpadmin$ python -V Python 2.6.1 macbook:Downloads ujpadmin$
|
- PyObjCのバージョンを調べる.本来の調べ方は別にあると思われるが.取り急ぎ.
ujpadmin$ locate pyobjc_core Frameworks/Python.framework/Versions/2.5/Extras/lib/python/PyObjC/pyobjc_core-2. 2b3-py2.5.egg-info /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/ PyObjC/pyobjc_core-2.2b3-py2.5.egg-info/PKG-INFO /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/ PyObjC/pyobjc_core-2.2b3-py2.5.egg-info/SOURCES.txt /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/ PyObjC/pyobjc_core-2.2b3-py2.5.egg-info/dependency_links.txt /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/ PyObjC/pyobjc_core-2.2b3-py2.5.egg-info/not-zip-safe /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/ PyObjC/pyobjc_core-2.2b3-py2.5.egg-info/top_level.txt /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/ PyObjC/pyobjc_core-2.2b3-py2.6.egg-info /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/ PyObjC/pyobjc_core-2.2b3-py2.6.egg-info/PKG-INFO /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/ PyObjC/pyobjc_core-2.2b3-py2.6.egg-info/SOURCES.txt /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/ PyObjC/pyobjc_core-2.2b3-py2.6.egg-info/dependency_links.txt /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/ PyObjC/pyobjc_core-2.2b3-py2.6.egg-info/not-zip-safe /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/ PyObjC/pyobjc_core-2.2b3-py2.6.egg-info/top_level.txt macbook:PyObjC ujpadmin$
|
- PyObjCは2.2b3がインストールされている.
- PyObjC 1.1以降が要件となっているので,満たしている事が確認できた.
4.Webページのキャプチャを取る
macbook:Downloads ujpadmin$ python webkit2png.py http://www.ujp.jp Fetching http://www.ujp.jp ... ... done macbook:Downloads ujpadmin$
|
macbook:Downloads ujpadmin$ ls -lat *.png -rw-r--r-- 1 ujpadmin staff 45789 3 30 11:33 wwwujpjp-clipped.png -rw-r--r-- 1 ujpadmin staff 2207398 3 30 11:33 wwwujpjp-full.png -rw-r--r-- 1 ujpadmin staff 318187 3 30 11:33 wwwujpjp-thumb.png macbook:Downloads ujpadmin$
|
- 3つのファイルが作成されている.
- 使い方を確認する.
macbook:Downloads ujpadmin$ python webkit2png.py --help Usage: webkit2png.py [options] [http://example.net/ ...]
examples: webkit2png.py http://google.com/ # screengrab google webkit2png.py -W 1000 -H 1000 http://google.com/ # bigger screengrab of google webkit2png.py -T http://google.com/ # just the thumbnail screengrab webkit2png.py -TF http://google.com/ # just thumbnail and fullsize grab webkit2png.py -o foo http://google.com/ # save images as "foo-thumb.png" etc webkit2png.py - # screengrab urls from stdin webkit2png.py -h | less # full documentation
Options: --version show program's version number and exit -h, --help show this help message and exit -W WIDTH, --width=WIDTH initial (and minimum) width of browser (default: 800) -H HEIGHT, --height=HEIGHT initial (and minimum) height of browser (default: 600) --clipwidth=WIDTH width of clipped thumbnail (default: 200) --clipheight=HEIGHT height of clipped thumbnail (default: 150) -s SCALE, --scale=SCALE scale factor for thumbnails (default: 0.25) -m, --md5 use md5 hash for filename (like del.icio.us) -o NAME, --filename=NAME save images as NAME-full.png,NAME-thumb.png etc -F, --fullsize only create fullsize screenshot -T, --thumb only create thumbnail sreenshot -C, --clipped only create clipped thumbnail screenshot -d, --datestamp include date in filename -D DIR, --dir=DIR directory to place images into --delay=DELAY delay between page load finishing and screenshot --noimages don't load images macbook:Downloads ujpadmin$
|
- フルサイズで,ファイル名に日付を付け,任意のファイル名を設定して実行する.
macbook:Downloads ujpadmin$ python webkit2png.py --fullsize --datestamp --filename= WWW.UJP.JP http://www.ujp.jp/ Fetching http://www.ujp.jp/ ... ... done macbook:Downloads ujpadmin$
|
macbook:Downloads ujpadmin$ ls -lat *.png -rw-r--r-- 1 ujpadmin staff 2207957 3 30 11:39 20100330-WWW.UJP.JP-full.png -rw-r--r-- 1 ujpadmin staff 45789 3 30 11:33 wwwujpjp-clipped.png -rw-r--r-- 1 ujpadmin staff 2207398 3 30 11:33 wwwujpjp-full.png -rw-r--r-- 1 ujpadmin staff 318187 3 30 11:33 wwwujpjp-thumb.png macbook:Downloads ujpadmin$
|