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