Webページの取得

Webページを取得する方法をいくつか調べてみる。

net-httpを使った一番簡単(?)な方法

require "net/http"

puts Net::HTTP.get('www.yahoo.co.jp', '/index.html', 80)


または、uriパッケージで、URIをパースして、各要素(ホスト,パス,ポート)を渡す。

require "net/http"
require "uri"

response = Net::HTTP.get_response(URI.parse('http://www.yahoo.co.jp/index.html'))
puts Net::HTTP.get('www.yahoo.co.jp', '/index.html', 80)


Net::HttpResponseを生成する方法。これで、コンテンツタイプなどもとれる。

require "net/http"

response = Net::HTTP.get_response(URI.parse('http://www.yahoo.co.jp/index.html'))
puts "size = " + response.body.size.to_s
puts "Content-type = " + response['Content-type']
puts response.body


Httpセッションを生成する方法

require "net/http"

Net::HTTP.start('www.yahoo.co.jp', 80) {|http|
  response = http.get('/index.html')
  puts "size = " + response.body.size
  puts "Content-type = " + response['Content-type']
  puts response.body
}


open-uriパッケージを使って、ファイルと同様にURLを扱う方法。

require "open-uri"

open('http://www.yahoo.co.jp/index.html')  do |f|
  until f.eof? do
    puts f.gets
  end
end