casperJSでPHPから外部サイトのjavascript実行結果HTMLを取得してみた。

スクリーンショット 2015-02-14 23.19.49
 

Webアプリケーションを作っていると意外と利用する外部サイトの情報収集。

今ではAjaxを利用しているサイトもたくさんあるので、単純にcurlなどでHTML取得しても

実はデータ取得できなかったりします。

 

そんなときに役立つのが「casperJS」です。

簡単にいうとサーバーで動作する画面のないブラウザを利用することができます。

公式サイト : http://casperjs.org/

 

インストール方法

Homebrewの場合は下記コマンドにてインストール

brew install casperjs --devel

npmの場合は下記コマンド。

npm install -g casperjs

グローバルインストールしてあげましょう。

 

casperjs --version

でバージョンが表示されればOKです。

内部でphantomjsを利用しているのですが、上記コマンドで自動インストールされます。

http://phantomjs.org/build.html

 

使い方

下記コードを「sample.coffee」として保存。

ちなみにCoffie ScriptやJavascriptでも利用できます。

casper = require('casper').create()

casper.start('http://yahoo.co.jp/', ->
  @echo(@getTitle())
)

casper.run()

コマンドラインにて実行することで利用できます。
phpの場合はexec()などで取得してあげるといいでしょう、

casperjs sample.coffee

数秒待ってから取得などさまざまなことができますので、
こちらがあるとプログラムの幅が広がると思います。