クローラーが自分で作れるの?
というのが先ずこの本の題名を見て感じた事です。
本当に作れるのか疑っていた気持ちというわけではなく、この本を読めれば自分でもクローラーを作る事が出来るんだ!
というわくわくした気持ちです。
web業界に入って間もない(と言っても2年経ちそう)のでRubyはまだほとんど触った事がなく、不安だったのですが、この本を片手にwebで調べながら開発していけば、自分でもどうにかなっちゃうんじゃないの?という感じがします。
(ここ記載時点ではまだ読んだだけで作ってはないです)
どんな事が書いてあったのか、実践してどういう事にはまったのか(今後)、など記録していきたいと思います。
Rubyによるクローラー開発技法から学んだ事
身近なクローラーだったWget
再帰ダウンロードなど出来るので、実はWgetがあれば割と簡単なクローラーだったら作らなくても良さそう。
クローラーの構成
巡回取得(クローリング)、解析(スクレイピング)、保存という3つのステップで構成されていた。
静的・ステートレスなクローラーAnemone
静的なページのクローラーで代表的なAnemoneライブラリを使えばだいたい取得出来そう。
動的・ステートフルなクローラーMechanize
対話型の為、ログインしてデータをクローリングするなどに使用出来るが、javascriptには対応していない。
javascriptが必要なページのクローラーCapybara
CapybaraライブラリとSeleniumツールを組み合わせればjavascriptからなるページでも取得可能。これがクローラーというよりテストツールをクローラーに利用している。
ex. twitterのタイムラインを↓に行くとふわーっとjsで表示されるような画面。
ダウンロードライブラリのデファクトスタンダードopen-uri
Rubyに標準で入っているライブラリ。require ‘open-uri’で使用できる。
Nokogiriを使用してHTML構文解析
RubyのHTML構文解析としてNokogiriが代表的なライブラリ。インストール要。
robots.txtを見てクロール可否を確認するライブラリrobotex
インストール要ですが、robotexを使用してrobots.txt情報の構文解析が出来る。
API(Amazon、twitter、Facebook、Google)
APIを使用すればHTMLをクローリング・スクレイピングする必要がなく、サービス内の情報を取得可能なので積極的に利用する。
その他
とにかく読んでいるだけで「あれも実現出来る」先ずは作ってみなきゃ。
「これにも使える」とりあえず作り始めなきゃ。
「あのサイトもクローラーで取ってきてるのでは?」早く作らなきゃ。
という気分にとにかくなりました。
この本もメンターな先輩が教えてくれた本でその時は読まなかったのですが、その後必要が出てきて読み始めた次第です。
早く着手したいです。着手時にまた更新します。
Rubyによるクローラー開発実践記録
この書籍を元に自分でもクローリングしたいサイト用に作っている記録が以下です。