crawlerちょっと前に試そうと思って、そのまま放置していたruby製のクローラー「Masque」を試してみました。ruby製のクローラーは、他にはAnemoneという優秀なものがあります。その上で何故というと、Anemoneにはない特性があるからです。MasqueはCapybaraのDSLで記述出来るWebクローラーです。Capybaraを動かす為のものなので、JavaScriptも解釈が出来るということです。場合によっては、レスポンシブルデザインのサイトの確認も出来ます。一方で、Anemoneはあくまで個別個別のHTMLを取得する為のクローラーなので、JavaScriptを多用しているサイトでの情報取得に向きません。どちらが優れているという訳ではないので、用途に応じて使いこなせばよいでしょう。/Users/username/.rvm/gems/ruby-2.0.0-p247@masque/gems/capybara-webkit-1.0.0/./gem_make.outqmakeがないとエラーが出ます。インストール方法を探してみると、Homebrewでインストール出来るようです。パッケージ名は、qmakeではなくqtです。minutesコマンド一発でインストール出来るのですが、割と時間が掛かります。installed今回はすんなりインストール出来ます。サンプルソースを走らせてみましょう。サンプルソースは以下の通りです。titles.join("\n")endサンプルソースを実行してみると、下記のようなエラーが出ました。Xvfbがないとのことです。Xvfbは仮想フレームバッファで、Xを起動していないマシンでもXの仮想的なXフレームバッファを使えるようにする為のものです。これを入れておけば、Xのライブラリが使えるようになります。`<main>'さてどうしたものかと考えたのですが、基本的にはXがあれば良いはずです。MacでXはどうなっているかというと、入っていないのでXQuartzを使えと公式ページに書いています。XQuartzはdmg形式で配布されてるので、ダウンロードしてインストールしましょう。インストール後に再起動して環境を反映さえます。再度、実行してみます。何やら結果が出ていますね。これは、masqueがGoogleでcapybaraを指定して検索ボタンを押して、その結果を取得しているのです。最初に書いた通り、MasqueはCapybaraのDSLを記述出来るクローラーです。それを念頭にソースを見ると、以下のソースの意味が直ぐ解ります。find('*[name="btnG"]').clickとここまで書いて、Capybaraとの違いが気になってきます。同じ処理をCapybaraで書くと、下記のようなソースになります。titles.join("\n")DSLの宣言など、一部の違いがあるだけです。結論としては、MasqueはCapybaraのラッパーとして一部の値を上書きして使いやすくしているだけです。CapybaraのDSLを使いますよという時点で、そりゃそうだという結論です。まとめ結論的には、Capybaraの構造をちゃんと知っていれば、特に必要のないライブラリです。一方でMasqueを使うことによって、余計な宣言の手間も必要なくなります。必要なところは上書きで設定できるようになっています。使っても良いかなぁというレベルです。方向性としては、Capybaraの設定を便利にするより、クローラーとしての機能を盛り込んだ方が面白いと思います。リンクを解析して再帰的に情報を収集する機能などを、付加するのも1つだと思います。Anemoneでストレージをファイルに変更するシリーズの如く何度かAnemoneの話を書いています。はてなブログをはじめよう!dkfjさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。