どんなときにどれを使ったらいいんでしょうね?ということで簡単にですがそれぞれの特徴を調べてみました。
Net::HTTP
getの他にpostやリダイレクトにも対応。下記のように、ブロックの中でサーバ内のコンテンツにアクセスするように書くので、同一サーバに何度もアクセスする場合はopen-uriより便利。
require 'net/http' Net::HTTP.version_1_2 Net::HTTP.start('www.ruby-lang.org', 80) { |http| response = http.get('/ja/') # ディレクトリを指定 response.body }
詳しくは下記を参考に。
net/http - Rubyリファレンスマニュアル
Rubyist Magazine - 標準添付ライブラリ紹介 【第 7 回】 net/http
Mechanize
他の二つと違って、履歴の管理やクッキーのやり取り、リンクのアクセス等ができます。さらに、hpricot*1を使ってHTMLのパースを行い、HTMLの各要素を指定してアクセスすることができます。これがものすごく強力。さらに、「テキストフィールドに文字列を入れて、ログインボタンを押す」ようなことも書くことができます。スクレイピングをしたい時にはとても便利ですね。でも多機能な分、前の2つと比べると少し重いみたいです。
curb(curl)
lib-curlへのバインディングを提供するライブラリ。なので、curlコマンドでできること(普通のアクセスの他に、クッキーを取得したり、ファイルのアップロードをしたりなど)はほぼできるみたいです。curbのインストールの他に、lib-curlも必要です*2。
curbはドキュメントがあまりありません。
Curb - libcurl bindings for ruby
まとめ
なのかな?それぞれ使い込んでみるべきだな。
追記
httpclientというライブラリもあるそうです。ぱっと見使いやすそう。
Rubyでwebにアクセスするならhttpclientが手軽 - ’(rubikitch wanna be (a . lisper))