導入のきっかけ
社長「このサイトのここの情報をシステム的に取れない?」
わたし「楽勝ですよ」
早速PerlのWeb::Queryでスクレイピングするプログラムを作成し、いざ実行。
欲しいコンテンツが、と、取れない。。
コンテンツのソースコードを確認すると、コンテンツの中身が空だ。
どうやらJavaScriptで生成されるコンテンツらしい。
くそっ、静的コンテンツしか取得できないWeb::Queryではどうしようもないではないか。
CasperJSとの出会い
ググってみたところ、「CasperJS」というサーバーサイドjavascript向けモジュールが存在するらしい。
元々、外部からJavaScriptのAPIを使ってブラウザを操作できるというPhantomJSというヘッドレス(GUIの無い)ブラウザがあって、CasperJSはPhantomJSを便利に使えるモジュールらしい。
ただし、CasperJSは実行する際にnodeコマンドではなくcasperjsコマンドで実行するため、Node.jsで使える機能が使えない。
そこで、Node.jsからCasperJSを使えるようにするモジュールをググってみたところ、SpookyJSに出会った次第。
CasperJSのインストール
Node.js、npmのインストール
# npmをインストールするために、いったんnode.jsをインストール
$ sudo apt-get update
$ sudo apt-get install nodejs npm
$ npm cache clean
# nパッケージでnode.jsを管理
$ sudo npm install n -g
$ sudo n stable
# casperモジュールをインストール
$ sudo npm install phantomjs -g
$ sudo npm install casperjs -g
SpookyJSのインストール
$ sudo npm install spooky
$ sudo npm install tiny-jsonrpc