Rubyによるクローラー開発技法を読んで覚えた事まとめ

クローラーが自分で作れるの?

というのが先ずこの本の題名を見て感じた事です。

本当に作れるのか疑っていた気持ちというわけではなく、この本を読めれば自分でもクローラーを作る事が出来るんだ!

というわくわくした気持ちです。

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によるクローラー開発実践記録

この書籍を元に自分でもクローリングしたいサイト用に作っている記録が以下です。

Rubyでのスクレイピング・クローラー開発記録(データベース系サイトのデータ収集用)
データベース系サイト用にデータ収集クローラーを開発してみることにしました。その記録をこちらに記載していきます。 この記事は随時追記して...