【連載】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 というキャプチャ画像ができる。
- 第1回 CasperJS の基本
- 第2回 役に立つオプション
- 第3回 実践テクニック