CentOS 6.5 にインストールする。
PhantomJS ってなに?
画面が無い(Headless)Webブラウザ。 スクリーンキャプチャとったり、 Webページを操作したり、 jQueryのようにDOMを操ったり、 ページのロード時間を計測したり、 ネットワークモニタリングしたりできる。
Jenkins などの CI ツールと連携して、E2Eの自動テストに使われたりするのが主な用途らしい。 私の場合、Javascript で動的に変化するWebページの情報を取得するのに使う予定です。
インストールする
公式によると、Windows や MacOSX なんかはバイナリが配布されているが、Linux に関してはソースからビルドするのが主流のよう。
まず、必要なライブラリを yum でインストールする。
インストール済みのものは勝手にアップデートがかかります。
% sudo yum -y install gcc gcc-c++ make flex bison gperf ruby \ openssl-devel freetype-devel fontconfig-devel libicu-devel sqlite-devel \ libpng-devel libjpeg-devel
git で ソースコード を clone してきてからビルドする。
% git clone git://github.com/ariya/phantomjs.git % cd phantoms % git checkout 2.0 % ./build.sh
30分くらい時間かかるけどええのか〜?と聞いてくるのでよければy
でインストール開始。
ビルドには結構時間がかかるので、皿洗い、掃除、洗濯などをして待つ。
make[1]: Leaving directory `/home/tokoyax/phantomjs/src/qt/qtwebkit/Source/WTF' cd Source/JavaScriptCore/ && ( test -e Makefile.JavaScriptCore || /home/tokoyax/phantomjs/src/qt/qtbase/bin/qmake /home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore/JavaScriptCore.pro WEBKIT_CONFIG\ -=\ \ use_glib\ use_gstreamer\ use_gstreamer010\ use_native_fullscreen_video\ legacy_web_audio\ web_audio\ video\ gamepad -o Makefile.JavaScriptCore ) && make -f Makefile.JavaScriptCore make[1]: Entering directory `/home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore' ( test -e Makefile.LLIntOffsetsExtractor || /home/tokoyax/phantomjs/src/qt/qtbase/bin/qmake /home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore/LLIntOffsetsExtractor.pro WEBKIT_CONFIG\ -=\ \ use_glib\ use_gstreamer\ use_gstreamer010\ use_native_fullscreen_video\ legacy_web_audio\ web_audio\ video\ gamepad -o Makefile.LLIntOffsetsExtractor ) && make -f Makefile.LLIntOffsetsExtractor make[2]: Entering directory `/home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore' ruby /home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb llint/LowLevelInterpreter.asm LLIntDesiredOffsets.h offlineasm: Parsing llint/LowLevelInterpreter.asm and creating offset extractor LLIntDesiredOffsets.h. /home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore/offlineasm/self_hash.rb:38:in `open': Insecure operation - open (SecurityError) from /home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore/offlineasm/self_hash.rb:38:in `foreach' from /home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore/offlineasm/self_hash.rb:38:in `dirHash' from /home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore/offlineasm/parser.rb:711:in `parseHash' from /home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb:49:in `<main>' make[2]: *** [LLIntDesiredOffsets.h] Error 1 make[2]: Leaving directory `/home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore' make[1]: *** [sub-LLIntOffsetsExtractor-pro-make_first-ordered] Error 2 make[1]: Leaving directory `/home/tokoyax/phantomjs/src/qt/qtwebkit/Source/JavaScriptCore' make: *** [sub-Source-JavaScriptCore-JavaScriptCore-pro-make_first-ordered] Error 2
こんなエラーが出てビルドできない。 調べてみましたが、これと言った解決方法が見つからず、ソースからビルドするのは諦める。
古いバージョンの linux 用バイナリが配布されているらしいので、それを取ってくるようにした。
% wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-x86_64.tar.bz2 % cd /usr/local/src % sudo tar jxf ~/phantomjs-1.9.8-linux-x86_64.tar.bz2 % sudo ln -s phantomjs-1.9.8-linux-x86_64 phantomjs % sudo ln -s /usr/local/src/phantomjs/bin/phantomjs /usr/local/bin/phantomjs % phantomjs -v 1.9.8
バージョンが表示されればインストール完了。

JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック
- 作者: クジラ飛行机
- 出版社/メーカー: ソシム
- 発売日: 2015/08/31
- メディア: 単行本
- この商品を含むブログ (2件) を見る

- 作者: 中川勝樹,山内沙瑛,舟崎健治,吉荒祐一,今井雄太,八木橋徹平,安川健太,近藤宇智朗,奥野幹也,天野祐介,賈成カイ,伊藤直也,住川裕岳,北川貴久,菅原一志,後藤秀宣,久森達郎,登尾徳誠,渡邊恵太,中島聡,A-Listers,小俣裕一,はまちや2,川添貴生,石本光司,舘野祐一,沖田邦夫,澤村正樹,卜部昌平,吉藤博記,片山暁雄,平山毅,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2013/10/24
- メディア: 大型本
- この商品を含むブログ (3件) を見る
<参考>
http://shinsuke789.hatenablog.jp/entry/2015/04/06/123000
http://phantomjs.org/build.html