使えるシステムから使いたいシステムへ、有限会社アテージ

JavaScriptを使用したページが多くなり、一昔前のツールではスクレイピングできないページに行き当たることが多くなりました。そこでSeleniumのようなブラウザを操ることができるツールが出てきて、JavaScriptを使用したページのスクレイピングやテストができるようになりました。

しかし、GUIブラウザを起動してコントロールさせてとなると、とても時間がかかる。そこでGUIのないブラウザ、ヘッドレスブラウザの登場となりました。

CasperJSは、ヘッドレスブラウザを使ったクライアントサイドテストやスクレイピングをより簡単に記述できるツールです。

対応しているヘッドレスブラウザは、PhantomJS(WebKitベース)とSlimerJS(Gekoベース)です。ただし、SlimerJSは厳密にはヘッドレスではなく、GUIブラウザを起動しています。

実例

以下のようなページを用意します。一昔前のスクレイピングツールではtitleを取り出した場合、”書き換え前”となってJavaScriptによる処理を拾えませんでした。

html

CasperJSスクリプト

CasperJSをPhantomJS、SlimerJSで実行すると以下の通り、いずれも”書き換え後”が取り出せていて、JavaScriptによる処理が拾えています。

処理時間は、SlimerJSはPhantomJSの3倍近くかかっていて、GUIブラウザを使う分かなり遅いです。