🧊

いまさらPhantomJSを使ってみる

とりあえずインストールと一番簡単なサンプルを動かすまで。
仕事でも、もしかしたら使えるかも?

本当に簡単に使える

いろいろ調べてみたものの、どこの記事も古いらしく。
Webkitとかその他諸々インストールして、その上ソースコードからでないとビルドできない・・みたいなのは、昔の話!

今のPhantomJSはもっと簡単にインストールできました。

インストール

Linux

1. ダウンロードして解凍して

mkdir temp && cd temp
wget https://phantomjs.googlecode.com/files/phantomjs-1.9.0-linux-x86_64.tar.bz2 #64bitの場合
bzip2 -cd phantomjs-1.9.0-linux-x86_64.tar.bz2 | tar xvf -

2. 解凍されたフォルダにある bin/phantomjs を /usr/local/bin にでも投げ込む or PATH通す!

以上!

Mac

自宅ではMacで試しました。

1. 以下ページ中段、Mac OS Xのところからからzipでダウンロード。

参考:PhantomJS: Download and Install

2. zipを解凍
3. 解凍されたフォルダにある bin/phantomjs を /usr/local/bin にでも投げ込む or PATH通す!

以上!

めっちゃ簡単でした。

単純にNodeが既にインストールされたたからかもですが、Nodeも簡単にインストールできちゃうので・・。

参考:これからNodeやるならnodebrew!あとforeverも。 - console.lealog();

一番簡単なサンプル

Googleにアクセスして、キャプチャ撮って保存するやつ。

PhantomJSはインストール済として、PATHも通ってるとして。

// capGoogle.js
var page = require('webpage').create();
page.open('http://www.google.co.jp', function () {
    page.render('google.png');
    phantom.exit();
});

というようなコードを書いて、

phantomjs capGoogle.js

すると、

あっさりgoogle.pngが生成されました。
これは楽しいかもしれない・・・!

おまけ

Mac OS X Lion以降で試した場合に、以下のエラーが出たら。

Can't open input server /Library/InputManagers/MultiClutchInputManager.bundle

まぁエラー出るけど普通に動作するっていう気持ち悪い状態。

どうやら、 /Library/InputManagers/ がLion以降は不要な割に居座るあげく、他のプログラムと干渉するとかなんとか。
削除するなり適当にリネームして逃がすなりすれば、エラーは出なくなります。