定番機能
定番機能について
28. スクレイピング・クローラー

基本

  • スクレイピング対象、要素、頻度
  • 対象が変更される可能性、監視方法
  • スクレイピング自体の許可をとっているか、業界慣習は大丈夫か
  • HTMLパースのやりかた
  • クローリングのタイミング
  • ヘッドレスブラウザを利用した、ブラウザ操作の自動化
  • アグリゲーション
    • リンクのリスト
    • 自動クローリングのアグリゲーション
    • 例. はてなブックマーク、pocket、Yahooニュース、グノシー、smartnews

Web crawler - Wikipedia, the free encyclopedia

1. Scrapping/Crawlingする側の視点

Basic

  • 基本的には、Scrappingするサイトの構造を把握する必要がある
    • 例えば、URL構造、WEBサーバーの挙動、JavaScript
    • sitemap.xml, rss, robots.txtなども確認する
    • 汎用的なScrappingツールを作るのは大変(サイトの構造が違うので)
  • なにで作られているかも調査する(CMSのWEBサイト、WAFのWEBアプリ)

Problem

  • WEBサーバーに要求される、HTTP Request Header(User-Agent)を設定する
  • 各種認証に対応する
  • IPアドレスの制限に気をつける

Input and Parse

Output

  • テキストデータで出力する
  • JSONで出力する
  • CSVで出力する
  • MySQLに出力する
  • MongoDBに出力する

RubyGems

Ruby Scrapping Tutorial

Book

(追記:15.9.18) Node.js でスクレイピング

2. Scrapping/Crawlingされる側の視点

  • 人間かプログラムかを判別するしかないので、基本は防げない
  • DoS攻撃を防ぐようなアプローチで、WEBサーバーでIPアドレスを制限するしかない
  • 例えば、短期間での集中アクセスなど
  • しかし、企業のローカルネットなど同一IPアドレスから複数人でアクセスされるケースもある
  • また、Proxyを経由されるとIPアドレス変更できるので本質的には防げない

3. WEBサイト更新情報の通知

4. 定期処理

The Ruby Toolbox - Scheduling: Run recurring tasks easily at scheduled times

5. 権利問題について

スクレイピング/クローリング的な話は、結構タブー視されてしまっています。しかし、著作権法第47条の7「情報解析のための複製等」にて認められておりますから、もっと積極的にスクレイピングしましょう、的なことをお伝えしたい、ということです。

Rubyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - 病みつきエンジニアブログ

6. 近年のサービスの特徴 ~ クロールとキュレーション

先週は、IVSの併設イベントのCTO職や技術責任者の人たちが集まる集いに参加するために宮崎に行っていたが、そこで会った人たちの印象として、クローラを使う会社の元気な姿があった。 by BASE CTO えふしん @ 2015年6月14日

クローラ型サービスは、昨今のテック系スタートアップの基本? | F’s Garage@fshin2000

  • iQON: 各種ファッションサイトの商品情報をクロール
  • SmartNews/Gunosy: Fb/Twの情報を取得
  • じげん/Indeed: 各種採用サイトの情報をクロール
  • ハッカドール: アニメ/声優情報のまとめのためにクロール
  • NAVERまとめ/MERY: 手動でWEBから情報を取得してまとめる

WEB上の情報を、クローラーと手動キュレーションで集めて、表示するというのが基本。

  • Machine Learning
  • Deep Learning
  • 自然言語処理
  • 統計分析
  • レコメンドエンジン

追加で上記の開発をしている。

データ解析から機能 - saiwaki’s blog

例えば、こんなものも ~ 形態素解析・わかち書き

7. アイデア例: タレント情報通知アプリ

8. IPアドレス偽造

Ruby - IPアドレス偽装から周辺事項を調べる - Qiita

9. プロトタイプ作成で、WEBサービスを利用する

Blockspringで取得したデータをAPIにできるサービスがあります。
プロトタイプレベルならめちゃくちゃ便利。

10. データ解析など

機能カタログ