2012年10月10日水曜日

マーケットモニタリングアプリの開発(5): スクレイピングTips

はじめに

おはようございます。当ブログにアクセス頂き、ありがとうございます。
可能な限り「どのような操作をするか」ではなく「(操作に依存せず)どんな結果を得たいか」をプログラミングしていたい、宣言型プログラミング大好き、たなけんです。
本エントリでは、スクレイピング(Webリソース(e.g. htmlページ)から必要な情報を抽出すること)のTipsを記載します。

FireBug

プログラマであれば、真っ先に思い浮かべるのはFirebugだと思います。御多分に漏れず、私もまずはFirebugでhtmlの構造を(タグを掘り下げながら)解析して行きます。
Firebugの便利な点としては、htmlエディタ(画面下部)上にマウスカーソルを移動させると、対応するhtmlイメージ(画面上部)がハイライトされる点が挙げられます。
スクレイピングしたい部分を画面上部に表示しておき、該当するタグを探って行くことでおおよそ必要な要素を特定することができます。

YQL Console

私がスクレイピングする際に重宝しているもうひとつのツールがYQL Consoleです。
YQLとはYahoo!が開発した『Webリソースに適用出来るSQL』のようなものです。
Firebugで取得したい要素を特定し、enliveのselectorを記述したものの、意図していない結果が返される事が多々あります。なぜならenliveのselectorは該当する要素を全て含んだ結果を返しますが、私が欲しいのはその中の一部だからです。
このような場合、selectorで返される要素を俯瞰し、必要な要素と必要でない要素の違いを見分けるために、私はYQL Consoleを利用します。
具体的には結果をtreeで表示し、必要な要素と必要でない要素を比較します。
理論的にはEmacs上でも結果の比較は可能なのですが、YQL Consoleは階層を可視化して
くれるので、直感的に要素の違いを見分けることができます。

今回の作業は以上。最後までお読み頂き、ありがとうございました。
たなけん(作業時間15分)


0 件のコメント:

コメントを投稿