CasperJSの基本的な使い方を具体的なサンプルプログラムで紹介したいと思います。インストール済みという前提で話を進めます。まだインストールしていない場合はこちらを参考にインストールしてください。
「Macにcasperjsをインストール」
「Windowsにcasperjsをインストール」
入力データをファイルから読みこんだり、Webのスクレイピングを行った結果をファイルに保存したりするケースがあると思います。ファイル読み込みとファイル保存を行うプログラムを紹介します。
ファイルの読み込み
例として以下のようなCSVファイルを読み込みます。
1 2 3 4 5 |
col1,col2,col3,col4,col5 データ1,データ2,データ3,データ4,データ5 データ1,データ2,データ3,データ4,データ5 データ1,データ2,データ3,データ4,データ5 データ1,データ2,データ3,データ4,データ5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
// //-------sample.js------- // //casperオブジェクトを生成 var casper = require('casper').create(); //ファイル入出力用のオブジェクトを生成 var fs = require('fs'); //指定のURLへ遷移する casper.start('http://www.yahoo.co.jp', function() { //CSVファイルを読み込み var buffer; buffer = fs.read('test.csv'); //CSVファイルの内容を配列へ var CsvArray = createArray(buffer); //取得した内容を表示する require('utils').dump(CsvArray); }); /** * CSVファイルの内容を配列へ * @param {} buf CSVファイルの内容 * @return {Array} CSVファイルの内容が格納された配列 Data[行][列] */ function createArray(buf) { var Data = new Array(); var lines = buf.split("\n"); var csvArray = new Array(); for (var i = 0; i < lines.length;++i) { var cells = lines[i].split(","); if( cells.length != 1 ) { Data.push(cells); } } return Data; } //処理の実行 casper.run(); |
実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
$casperjs sample.js [ [ "col1", "col2", "col3", "col4", "col5" ], [ "データ1", "データ2", "データ3", "データ4", "データ5" ], [ "データ1", "データ2", "データ3", "データ4", "データ5" ], [ "データ1", "データ2", "データ3", "データ4", "データ5" ], [ "データ1", "データ2", "データ3", "データ4", "データ5" ] ] |
readメソッドによりCSVの内容はbufferに全て読み込まれます。\nを1行の区切りとしてcreateArrayという関数を作成して配列化しています。
ファイルへの保存
例としてYahooのトップページの以下の部分を取得してファイルに保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// //-------sample.js------- // //casperオブジェクトを生成 var casper = require('casper').create(); //ファイル入出力用のオブジェクトを生成 var fs = require('fs'); //指定のURLへ遷移する casper.start('http://www.yahoo.co.jp', function() { //指定の要素を取得 var article_str = this.evaluate(function() { var Node = document.querySelector('#commercebox > div.commerceMain.bdbA4 > p'); return Node.innerHTML; }); //取得した内容を表示する this.echo(article_str); //取得した内容をファイルへ保存する(オプション’a'は追記モード) fs.write('save.txt', article_str, 'a'); }); //処理の実行 casper.run(); |
実行結果
1 2 3 4 |
$casperjs sample.js ショッピングの最新売れ筋情報をランキング形式でご紹介。性別、年代別の情報も把握できるので、あなたのお買い物のヒントにしてみて。 ※カレントディレクトリにsave.txtが作成される。 |
writeメソッドでファイル保存します。(引数はファイルパス、書き込む内容、書き込みモードの順)
ファイルの入出力ができるとスクレイピング結果や自動テストの結果を保存できるので参考にして頂ければと思います。
CasperJSのAPIドキュメント
本家のAPIドキュメントは以下のリンクから。
http://docs.casperjs.org/en/latest/modules/index.html
CasperJSについて書かれている本
CasperJSについて詳しく書かれている本。Amazonのサイトで本書の目次を見ることができるので内容を確認して役に立ちそうなら。
Javascriptフレームワーク CasperJS 基本的な使い方 目次
こちらの記事も参考にして頂ければと思います。
「Javascriptフレームワーク CasperJS 基本的な使い方(1) 画面キャプチャをとってみる」
「Javascriptフレームワーク CasperJS 基本的な使い方(2) ページ内の特定の要素を取得する」
「Javascriptフレームワーク CasperJS 基本的な使い方(3) ボタンやチェックボックスをクリックする」
「Javascriptフレームワーク CasperJS 基本的な使い方(4) Webスクレイピングしてみる」
「Javascriptフレームワーク CasperJS 基本的な使い方(5) ファイル入出力」