rails 独学して軽くにちゃんまとめつくる

Rubyによるクローラー開発技法の目次とそのあらまし

chapter 1 10分間のクローラーの作成

  1.   イントロダクション
  2.   クローラーGNU Wget
  3.   クローラーを作るにあたっての Ruby の基礎
  4.  Rubyでテストサーバーをたてる
  5.  超簡単!10分で作るクローラー
  6.  クローラーを拡張する

chapter 2 クローラー作成の基礎

  1. クローラーの目的と構造
  2. Anemone を利用する
  3. Anemone のインストールwindows編)
  4. Anemone のインストール (Mac編)
  5. 基本的なクローラーを作成する
  6. 行儀のよいクローラーを作成するには
  7. ブラウザタイプのクローラー

chaper 3 収集したデータを分析する

  1. 収集したデータを分析する
  2. HTML解析と正規表現
  3. 文字コードの対処法
  4. RSS の解析
  5. 自然言語を使った日本語の処理

chapter 4 高度な利用法

  1. データの保存方法
  2. クローラーの開発とデバッグ方法
  3. クローリングとスクレイピングの分離
  4. クローラーを効率的に動かすには
  5. Anemone のオプション一覧
  6. APIを利用した収集

chapter 5 目的別クローラーの作成

  1. Google の検索結果を取得する

  2. ブログへのクローリング
  3. Amazon のデータを取得する
  4. Twitter のデータ収集
  5. Facebookへのクローリング
  6. 画像を収集する
  7. Youtubeから動画を収集する
  8. iTunes Store の順位を取得する
  9. Google Play の順位を取得する
  10. SEO に役立てる
  11. Wikipedia のデータを活用する
  12. キーワードを収集する
  13. 流行をキャッチする
  14. 企業・株価情報を収集する
  15. 為替情報・金融指標を収集する
  16. 郵便番号と軽度井戸情報を取得する
  17. 新刊情報を収集する
  18. 荷物を追跡する
  19. 不動産情報を取得する
  20. 官公庁オープンデータを活用する
  21. 新聞の見出しを集める

chapter 6 クローラーの運用

  1. サーバーサイドで動かす
  2. 定期的にデータを収集する
  3. 収集結果をメールで自動送信する
  4. クラウドを活用する
  5. さらなる高速化の手法
  6. 変化に対応する
  7. クローラーとそれに付随する技術

 

といった内容になっています。Rubyクローラーの情報は日本ではこの本しかないのでネットでデータを自動収集したいとおもう方はおすすめです。

1章の10分でつくるクローラーについてはしなくてもいいと思います。あまり ruby とは関係ないし、なにより応用が利かないからです。これはこんなのがあるんだなーと流し読みする程度でかまいません。

 

さて、本題は2章からです。ここでは Anemone と nokogiri という gem を使って説明してくれています。2章の最初ではクローラーとはなんぞやということについて系統立てて説明してくれてます。要は

  • コンテンツの取得(クローリング)
  • データの解析(スクレイピング
  • データの保存

という作業の一連をクローラーがしてくれるのです。一つ目のクローリングですが、これが一番厄介なのです。ウェブページといってもおおまかに分けて2種類あります。一つはステートレスなページ。このサイトもステートレスなページですね。とくにこの記事をみるのにログインが必要なわけでもなく、「続きをよむ」ボタンを押さなくても全文が読める、フツーのページのことです。この手のものには Anemone を使ってデータを収集します。

次にステートフルなページ。本書ではアマゾンアフィリエイトを例に説明していますが、先ほど述べたようにログインが必要だったり、続きをよむボタンを押さなきゃならなかったりと、ボタンを押したり入力したりなど何らかの操作が必要なうぇぶさいとのことを指します。 facebook もそうですね。これをクローリングするには capybara という gem を使います。この capybara を入れるのはそうとう厄介なのでべつのページで解説したいと思います(cloud9 を使っていますので、説明は centos などの linux 環境になるかと思います。windows, mac ユーザーの方も本書を読んでもできなかった場合動作確認としてcloud9 でやってみることを勧めます。)

 

本書ではアマゾンから情報を抽出してきたり、capybara を使って仮想的にボタンをクリックしてくれてページ移動をしてくれたり、ヤフーのタイトル情報を取得したり様々なことをしてくれます。本章で anemone や capybara の基礎をたっぷり学んで、5章を見るべきです。これらの gem の機能は十分に説明されているのでクローラーをまだしたことのない人でも十分に学べます。

 

3章4章は飛ばして、5章の説明を。

これが一番おもしろい。思う存分クローラーで遊べるからだ。もう一度先ほどの目次を引用する

 

  • Google の検索結果を取得する

  • ブログへのクローリング
  • Amazon のデータを取得する
  • Twitter のデータ収集
  • Facebookへのクローリング
  • 画像を収集する
  • Youtubeから動画を収集する
  • iTunes Store の順位を取得する
  • Google Play の順位を取得する
  • SEO に役立てる
  • Wikipedia のデータを活用する
  • キーワードを収集する
  • 流行をキャッチする
  • 企業・株価情報を収集する
  • 為替情報・金融指標を収集する
  • 郵便番号と経度緯度情報を取得する
  • 新刊情報を収集する
  • 荷物を追跡する
  • 不動産情報を取得する
  • 官公庁オープンデータを活用する
  • 新聞の見出しを集める

さすがにこれだけあったら一つくらいは気になるのがでてくるだろう。いっぱいあってややこしそうだが、結局やることは anemone か API の利用だ。特に twitter の収集が面白かった。 twitter api で調べてみるといい。やってみた系の情報がいっぱい出てくる。ぼくもいくつかその手の記事を書いている。

twitter-stream という gem を使えば不特定多数のツイートが絶え間なく取得できるのでそれを眺めるだけでも暇つぶしができる。条件を絞ることによってフォロワー10000人以上を取得したり、「彼女」というワードを含むツイートに限定したら「彼氏」>「彼女」という比率だったり、キリンビールの広告ツイートの多さに驚いたりと十分楽しめる。

2ちゃんねるまとめビルダーもこの技術でつくることができるし、満足できる1冊である。まあなんせこれは面白い本だ。ぜひ買うことを勧める。