【連載】CasperJS でスクレイピング (1) - CasperJS の基本

人が操作するのではなくプログラムで Web ブラウザを操作する PhantomJS というツールがある。中身は WebKit。それをより簡単に使うためのツールが CasperJS である。

インストール方法

PhantomJS と CasperJS のふたつをインストールする。

Mac で Homebrew を使っている場合は次の一行で終了。

% brew install phantomjs casperjs

Windows の場合は PhantomJS のダウンロードページ から phantomjs-1.9.7-windows.zip を、CasperJS から Download 1.1-beta3 (ZIP) を選択する。ダウンロードした ZIP ファイルを適当な場所に展開し、phantomjs.exe および casperjs.exe のあるディレクトリにパスを通す。

PhantomJS を実行すると終了できない場合はこちらを参照。

使い方の基本

さて使ってみよう。次のコードは Google で「すずめ」の画像を検索し、その結果ページのキャプチャ画像をファイルに保存するものである。

var casper = require("casper").create();

// 送信する User-Agent ヘッダを普段使っているブラウザに合わせる
// 開発者ツールのコンソールに navigator.userAgent と打ち込むと出る
casper.userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.74.9 (KHTML, like Gecko) Version/7.0.2 Safari/537.74.9");

// 指定した URL へ遷移する
casper.start("https://www.google.co.jp/search?q=%E3%81%99%E3%81%9A%E3%82%81&source=lnms&tbm=isch");

// ページが読み込まれたときに実行されるコールバック
casper.then(function() {
	// 画面のキャプチャを suzumekawaii.png というファイルに保存する
	casper.capture("suzumekawaii.png");
});

// 処理を開始する
casper.run();

このコードを hello-casper.js という名前で保存し、次のコマンドで実行する。

% casperjs hello-casper.js

うまくいけば suzumekawaii.png というキャプチャ画像ができる。