Rubyでスクレイピングをする際に調べたこと
基本的なライブラリ
Open-URI
* http/ftpに簡単にアクセスするためのライブラリ
* Kernel#openを定義
* ファイルのopenと同様にURLを扱える
Nokogiri(静的なものに限る)
* HTML/XMLの構文解析器(パーサー)
* ほぼデファクトスタンダード
* XPath or CSSセレクタでHTML中の要素を選択
* UTF-8以外の文字コードを扱う場合は注意
Mecanize(動的・ステートフルなクローラ)
* 対話型の為、ログインしてデータをクローリングするなどに使用出来るが、javascriptには対応していない。
クローラーフレームワーク
Anemone(静的・ステートレスなクローラ、イマイチ感あり)
* Ruby製のフレームワーク
* データ収集/解析/保存のすべての機能がある
* 6年ほどメンテされていない
* ScrapyのあるRubyが羨ましい今日このごろ
Selenium(jsを使った動的なページの取得の際に使う)
* ログインページへのログイン(http://iwathi3.hatenablog.com/entry/web_scraping_Ruby_Selenium)
* Seleniumの弱点(https://qiita.com/justin999/items/55fbfd5d4f9fc8e5e77d)
* 手軽だが遅い
* ページを一回一回レンダリングするので時間がかかる。
* Headress Chromeを使えばあまり関係ない?
* ローカルで動かすのとサーバー上で動かすのに環境が違う
* chrome driverのインストールが面倒
Capybara(javascriptが必要なページのクローラ)+Selenium
* 基本的にはUIテストツール
* ブラウザを使うのでjsにも対応可能
* スクレイピング部分はNokogirを使用
* CapybaraをラッパーにしたMasqueというクローラー
* ブラウザ代わりに、PhantomJSを使うのもあり
cosmiccrawler
* 並列処理を得意とするクローラー
* 並列処理の実装は、EventMachine
* EventMachineのめんどくさい処理を隠蔽してくれる
補助的なライブラリ
CocProxy
* ほぼピュアRubyで実装されたプロキシサーバ
* 開発用途でクローラー作成時に便利
* 訪問済みサイトをキャッシュしてくれる
* 訪問先サイトに無駄に負荷をかけずに試行錯誤できる
参考:
Author And Source
この問題について(Rubyでスクレイピングをする際に調べたこと), 我々は、より多くの情報をここで見つけました https://qiita.com/lemtosh469/items/0f7cc9cb9b952f04277d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .