2015年11月16日月曜日

PhantomJSとCasperJS

このエントリーをはてなブックマークに追加

世の中にはいろいろ便利なJavaScriptのライブラリがあるものです。今回はコマンドラインから利用できるPhantomJSと、そのPhantomJSを便利に使うことができるようになるCasperJSを使ってみる。

まずはインストールから。npmを使う。
# /usr/local/node/bin/npm install -g phantomjs
/usr/local/src/node-v4.2.2-linux-x64/bin/phantomjs -> /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/phantomjs/bin/phantomjs

> phantomjs@1.9.18 install /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/phantomjs
> node install.js

Looks like an `npm install -g`; unable to check for already installed version.
Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-x86_64.tar.bz2
Saving to /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/phantomjs/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2
Receiving...
  [=================================-------] 82% 0.0s
Received 12854K total.
Extracting tar contents (via spawned process)
Removing /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/phantomjs/lib/phantom
Copying extracted folder /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/phantomjs/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2-extract-1447702852021/phantomjs-1.9.8-linux-x86_64 -> /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/phantomjs/lib/phantom
Writing location.js file
Done. Phantomjs binary available at /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/phantomjs/lib/phantom/bin/phantomjs
phantomjs@1.9.18 /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/phantomjs
├── which@1.0.9
├── progress@1.1.8
├── kew@0.4.0
├── adm-zip@0.4.4
├── request-progress@0.3.1 (throttleit@0.0.2)
├── request@2.42.0 (tunnel-agent@0.4.1, forever-agent@0.5.2, aws-sign2@0.5.0, caseless@0.6.0, oauth-sign@0.4.0, stringstream@0.0.5, json-stringify-safe@5.0.1, tough-cookie@2.2.1, mime-types@1.0.2, qs@1.2.2, node-uuid@1.4.7, http-signature@0.10.1, hawk@1.1.1, form-data@0.1.4, bl@0.9.4)
├── npmconf@2.1.1 (ini@1.3.4, inherits@2.0.1, uid-number@0.0.5, semver@4.3.6, once@1.3.2, mkdirp@0.5.1, nopt@3.0.6, config-chain@1.1.9, osenv@0.1.3)
└── fs-extra@0.23.1 (path-is-absolute@1.0.0, jsonfile@2.2.3, graceful-fs@4.1.2, rimraf@2.4.3)
# /usr/local/node/bin/npm install -g casperjs
|
> phantomjs@1.9.18 install /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/casperjs/node_modules/phantomjs
> node install.js

Looks like an `npm install -g`; unable to check for already installed version.
Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-x86_64.tar.bz2
Saving to /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/casperjs/node_modules/phantomjs/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2
Receiving...
  [===================================-----] 88% 0.0s
Received 12854K total.
Extracting tar contents (via spawned process)
Removing /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom
Copying extracted folder /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/casperjs/node_modules/phantomjs/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2-extract-1447702982784/phantomjs-1.9.8-linux-x86_64 -> /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom
Writing location.js file
Done. Phantomjs binary available at /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs
/usr/local/src/node-v4.2.2-linux-x64/bin/casperjs -> /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/casperjs/bin/casperjs
casperjs@1.1.0-beta3 /usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/casperjs
└── phantomjs@1.9.18 (which@1.0.9, progress@1.1.8, kew@0.4.0, adm-zip@0.4.4, request-progress@0.3.1, npmconf@2.1.1, request@2.42.0, fs-extra@0.23.1)

サイトのタイトルを取ってくる簡単なサンプルを書いて実行してみる。
// 取得するURLを設定
var TARGET_URL = "http://smile-smile-at-smile.blogspot.jp/";

// CasperJSオブジェクトの生成
var casper = require('casper').create();

// 指定のサイトを開く
casper.start(TARGET_URL, function(){
 // サイトタイトルの表示
 this.echo(casper.getTitle());
});

// このrun()メソッドが呼ばれた時点で
// start()メソッドに登録した処理が実行される
casper.run();

実行したら怒られた。
# casperjs getTitle.js
/usr/local/src/node-v4.2.2-linux-x64/lib/node_modules/phantomjs/lib/phantom/bin/phantomjs: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory

fontconfigをインストール。
# yum install fontconfig

再度、実行してみる。
# casperjs getTitle.js
いつも君は僕のPAYDAYを取り上げるんだ

できたじゃん。

今日の作業

OpenCVの画像検出できた時はすごいうれしかった!あとは黙々とパース処理。。。

0 件のコメント:

コメントを投稿