HTML/Webのスクレイピング処理の観点から、有名どころのRubyのライブラリについて、現状(2010年10月時点)を調査した。調査項目は凡例に示すとおりである。ライブラリの比較・選定に際して、判断のひとつの材料として資することを、期待している。
なにかご意見がありましたら、お気軽にコメントをどうぞ。
2014-05-06追記: 新しいのはこちら→2014年版
2014-05-06追記: 新しいのはこちら→2014年版
■凡例
- ■の次に、ライブラリ名 (現時点(2010年)でのバージョン)を記す
- desc に、ライブラリの目的・機能仕様などの説明を記す
- update に、ライブラリの更新期間を記す。ここで、yyyy-と記されている場合、yyyy年から現時点でも更新されていることを表す
- url には、ライブラリのHPを記す。特にない場合、また情報が不足している場合は、補うに足るurl(ソースコードのurl)を追記している
- ライセンスには、配布条件等のライセンスを記す
- ソースコードには、ライブラリの格納場所のurlを記す
- インストールには、ライブラリのインストール方法を記す
- コメントには、補足の情報、私見などを記す
■Hpricot (0.8.2)
desc:
Hpricot は、非常に柔軟なHTMLパーサーで、田中 哲(TANAKA, Akira)の
HTree とジョン・レッシグ(John Lessig)の jQuery に基づいている。しかし、
コード・スキャナは、C でコーディングし直された。
Hpricot は、非常に柔軟なHTMLパーサーで、田中 哲(TANAKA, Akira)の
HTree とジョン・レッシグ(John Lessig)の jQuery に基づいている。しかし、
コード・スキャナは、C でコーディングし直された。
update:
2006-
2006-
ライセンス:
MIT License (see http://github.com/hpricot/hpricot/blob/master/COPYING )
MIT License (see http://github.com/hpricot/hpricot/blob/master/COPYING )
rubyforge:
N/A
N/A
インストール:
gem install hpricot
gem install hpricot
コメント
多くの派生ライブラリを持つHTMLパーサー。webスクレイピングにも使うこと
ができる。
以前の公式サイト(http://code.whytheluckystiff.net/hpricot/)は、リン
ク切れである。
多くの派生ライブラリを持つHTMLパーサー。webスクレイピングにも使うこと
ができる。
以前の公式サイト(http://code.whytheluckystiff.net/hpricot/)は、リン
ク切れである。
田中 哲氏のhtreeは、 http://www.a-k-r.org/index.html からたどることがで
きる。
きる。
■Mechanize (1.0.0)
desc:
Mechanizeライブラリは、webサイト間のやり取りを自動化するために
使用される。Mechanizeは、自動でクッキーを格納して送信、リダイレクトを
フォローし、リンクをたどったり、フォームをサブミットsubmitできる。フォーム・フィ
ールドは増やしたり、サブミットできる。また、履歴となった訪れたサイトを
調査する。
Mechanizeライブラリは、webサイト間のやり取りを自動化するために
使用される。Mechanizeは、自動でクッキーを格納して送信、リダイレクトを
フォローし、リンクをたどったり、フォームをサブミットsubmitできる。フォーム・フィ
ールドは増やしたり、サブミットできる。また、履歴となった訪れたサイトを
調査する。
update:
2005-
2005-
url:
http://mechanize.rubyforge.org/mechanize/
http://mechanize.rubyforge.org/mechanize/Mechanize.html
http://mechanize.rubyforge.org/mechanize/
http://mechanize.rubyforge.org/mechanize/Mechanize.html
ライセンス:
GPL 2 (http://mechanize.rubyforge.org/mechanize/LICENSE_rdoc.html )
GPL 2 (http://mechanize.rubyforge.org/mechanize/LICENSE_rdoc.html )
rubyforge:
http://rubyforge.org/projects/mechanize/
http://rubyforge.org/projects/mechanize/
インストール:
gem install mechanize
gem install mechanize
コメント:
Andy LesterによるPerlの同名のライブラリ:Mechanize の強い影響のもとに開
発された。webスクレイピングのためのライブラリである。
ruby 1.8.6 と nokogiri に依存している。
Andy LesterによるPerlの同名のライブラリ:Mechanize の強い影響のもとに開
発された。webスクレイピングのためのライブラリである。
ruby 1.8.6 と nokogiri に依存している。
インストール時に、エラーが発生するという報告がWeb上に散見される。この場合、gemとRailsの更新等が事前に必要とのこと。
※追記2010/12/7:バージョン1.0.0では、Hpricotではなく、Nokogiriを使用するようになっているようだ。
※追記2010/12/7:バージョン1.0.0では、Hpricotではなく、Nokogiriを使用するようになっているようだ。
■ScrAPI toolkit for Ruby (1.2.0)
desc:
CSSセレクタと選択 => 抽出 => 格納 処理ルールを使ったスクレイパーを書く
ためのフレームワーク。
CSSセレクタと選択 => 抽出 => 格納 処理ルールを使ったスクレイパーを書く
ためのフレームワーク。
update:
2006-2008
2006-2008
ライセンス:
MIT License (http://github.com/assaf/scrapi/blob/master/MIT-LICENSE )
MIT License (http://github.com/assaf/scrapi/blob/master/MIT-LICENSE )
rubyforge:
http://rubyforge.org/projects/scrapi/
http://rubyforge.org/projects/scrapi/
install:
gem install scrapi
gem install scrapi
コメント:
少し情報が古い(2007年)が、このような意見もあった:“Web scraping in
Ruby: why I had to use scrAPI instead of WWW::Mechanize and Hpricot”
http://blog.bigsmoke.us/2007/05/02/scrapi-wins-over-mechanize-and-hpricot-for-web-scraping-in-ruby
少し情報が古い(2007年)が、このような意見もあった:“Web scraping in
Ruby: why I had to use scrAPI instead of WWW::Mechanize and Hpricot”
http://blog.bigsmoke.us/2007/05/02/scrapi-wins-over-mechanize-and-hpricot-for-web-scraping-in-ruby
開発は、止まっているようだ。
■scRUBYt! (0.4.06)
desc:
scRUBYt! は、Rubyで記述された、シンプルだがパワフルなwebスクレイピング・
ツールキットである。目的は、webページ・クローリング、HTMLタグ・属性・
XPath・フォーム名のルック・アップ処理の超めんどくささ、また、その他Web
ページまたはFirebugから直接コピペしたようなサンプルからこれらを理解
するような、典型的な低レベルなwebスクレイピングから、あなたをフリーに
することである。
scRUBYt! は、Rubyで記述された、シンプルだがパワフルなwebスクレイピング・
ツールキットである。目的は、webページ・クローリング、HTMLタグ・属性・
XPath・フォーム名のルック・アップ処理の超めんどくささ、また、その他Web
ページまたはFirebugから直接コピペしたようなサンプルからこれらを理解
するような、典型的な低レベルなwebスクレイピングから、あなたをフリーに
することである。
update:
2007-
2007-
ライセンス:
GPL 2 (http://github.com/scrubber/scrubyt/blob/master/COPYING )
GPL 2 (http://github.com/scrubber/scrubyt/blob/master/COPYING )
rubyforge:
http://rubyforge.org/projects/scrubyt/
http://rubyforge.org/projects/scrubyt/
インストール:
gem install hpricot
gem install mechanize
gem install scrubyt
gem install hpricot
gem install mechanize
gem install scrubyt
コメント:
hpricot と mechanize (選択的に、AJAXのスクレイピングにFireWtir)に依存
している。
hpricot と mechanize (選択的に、AJAXのスクレイピングにFireWtir)に依存
している。
■nokogiri (1.4.3.1)
desc:
Nokogiri は、libxmlラッパーである。Nokogiri は、XPathやCSSの検索のため
のインタフェースを持ち、また、HTML, XML, SAX, そしてReaderパーサーの機
能がある。Nokogiri は、Hpricotの寄り道リプレイスメントでもある。
Nokogiri は、libxmlラッパーである。Nokogiri は、XPathやCSSの検索のため
のインタフェースを持ち、また、HTML, XML, SAX, そしてReaderパーサーの機
能がある。Nokogiri は、Hpricotの寄り道リプレイスメントでもある。
update:
2008-
2008-
ライセンス:
The MIT License (via http://nokogiri.org/ )
The MIT License (via http://nokogiri.org/ )
rubyforge:
http://rubyforge.org/projects/nokogiri/
http://rubyforge.org/projects/nokogiri/
インストール:
gem install nokogiri
gem install nokogiri
コメント:
この中で、一番包括的な機能を持つパーサー。もちろん、webスクレイピングに
も使うことができる。
この中で、一番包括的な機能を持つパーサー。もちろん、webスクレイピングに
も使うことができる。