Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rubyでつくるクローラー

1,640 views

Published on

Ruby / Ruby on Rails ビギナーズ勉強会 第4回 2015-04-19(日)でのセッションに使用した「Rubyでつくるクローラー」のスライドです。クローラー作成に使用されるライブラリやrobots.txt、クローラーの運用について、紹介しています。

Published in: Internet
  • Be the first to comment

Rubyでつくるクローラー

  1. 1. Rubyでつくるクローラー
  2. 2. 自己紹介 山下 弥香(やました  みか) 休日は、Co-Edoで趣味の iOSアプリ開発をしていま す。 Facebook
 https:// www.facebook.com/ mika.yamashita.357 好きなもの:スープカレー
  3. 3. 一日レジ 1/10に初めてつくった iPhoneアプリがリリースさ れました。 無料なので、もしよかっ たら、ダウンロードして みてください。 https:// itunes.apple.com/jp/ app/yi-rireji/ id951282820?mt=8
  4. 4. 参考図書 「たのしいRuby」第4版 高橋 征義 (著), 後藤 裕 蔵 (著), まつもと ゆきひ ろ (監修) ! 出版日: 2013/06/04 出版社: SBクリエイティブ ! http://www.amazon.co.jp/ dp/4797372273/
  5. 5. 参考図書 「Rubyによるクローラー開 発技法 巡回・解析機能の 実装と21の運用例」 ! るびきち、佐々木拓郎 著 ! 出版日: 2014/08/23 出版社: SBクリエイティブ ! http://www.amazon.co.jp/ dp/4797380357/
  6. 6. クローラーとは クローラー(Crawler)とは、システムが自動的に Webページを巡回して情報を収集するプログラム です。 クローラーの動きは、大きく分けて「コンテンツ の取得」、「データの解析」、「データの保存」 の3つに分類できます。
  7. 7. クローラーが利用するライブラリ 『open-uri』
 http/ftpに簡単にアクセスするためのライブラリ
 Kernel#openを再定義
 ファイルのopenと同様に、URLを扱える 『Nokogiri』
 HTML/XMLの構文解析器(パーサー)
 XPath or CSSセレクタで、HTML中の要素を選択 『Anemone』
 Ruby製のクローラーフレームワーク。
 HTMLのダウンロードから解析まで一通り行えます。
  8. 8. Anemoneの実行モデル 1. 巡回対象サイトのURLを指定 2. 除外対象ページのURLパターンを正規表現で 指定 3. ページ中のリンク先(URL)を指定(次に巡 回するページの絞り込み) 4. 取得したページに対して、正規表現で一致し たページのみ、もしくは取得したページ全て に対しての処理 5. ストレージに対する処理
  9. 9. 行儀のよいクローラーを 作るには クローラーの対象となるWebサイトは著作物。 クローラーでデータを収集してそのままインター ネットで公開するのは著作権法違反 クローラーの巡回が原因で、他の利用者からWeb サイトの閲覧が妨害されるようなことになれば、 最悪業務妨害に問われることに。 クローラーの作成は、APIが提供されていない 場合や、APIではどうしても取得できないデー タを集める時に限定した方がよい
  10. 10. robots.txt Robots Exclusion Standard(RES) または RobotsExclusionProtocolは、クローラがウェ ブサイトを巡回する時に守るべき規約であり、 robots.txtはその規約をまとめたもの。 『robotx』
 robots.txtを参照し、クロールの可否を確認す るライブラリ
  11. 11. クローラーの運用 クローラーを運用する場合、サーバサイドで 動かすことのメリットの一つとして、スケジュー リングのしやすさがあります。 Linuxであれば、スケジューリングするために Crondデーモンのようなスケジュール管理プ ログラムが標準で組み込まれています。
 
 ※デーモンとは、バックグラウンドプロセス として動くプログラムのことで、決められた ルールに従って自動的に動きます。
  12. 12. Crondでスケジューリン グを登録する [構文]スケジュールの登録
 Crontab -e
 [分][時][日][月][曜日][実行コマンド] ※Crontabの設定の際には、ユーザーアカウント に設定している環境変数は、Crondでの実行時に は引き継がれません。
 Crontabで実行時に環境変数を利用するには、 Crontab内で宣言する方法や、コマンド実行時に シェルスクリプトを指定して、その中で宣言するな どの方法があります。
  13. 13. クラウドを活用する(AWS) 収集結果をメールで自動送信する。
 Amazon Simple Email Service(SES) クラウド上のサーバを利用する
 Amazon Elastic Compute Cloud (EC2) クラウド上のストレージを利用する。
 Amazon Simple Storage Service (Amazon S3) ※RubyからAWSの各サービスを利用する場合は、Amazon 自身が出している公式のGemライブラリがあります。イ ンストールはgemから行えます。

×