2012年1月5日木曜日

Ruby で HTTP クライアントを作る

●Ruby で HTTP クライアントを作るのに、最も手軽な方法としてopen-uriライブラリを利用します。


require "open-uri"

open("http://www.example.com/"){|f|

   print f.read

}



●open-uriライブラリよりも細かい操作を行ないたいときには、net/httpライブラリを使用します。(例えばPOSTリクエストを送りたいとき)



require "net/http"
require "uri"
url = URI.parse("http://www.ruby-lang.org/ja/")
p url.scheme
p url.host
p url.port
p url.path
p url.to_s
http = Net::HTTP.start(url.host, url.port)
doc = http.get(url.path)
puts doc

●nokogiriを使ってHTMLを解析するには例えば以下のようにします。

require 'rubygems'
require 'open-uri'
require 'nokogiri'

doc = Nokogiri::HTML(open('http://www.google.co.jp/search?q=cofe_arabi'))

#doc.xpath('//h3/a[@class="l"]').each do |link|
 doc.xpath('//h3/a').each do |link|
 puts link.content
 end



require 'rubygems'
require 'open-uri'
require 'nokogiri'

doc = Nokogiri::HTML(open("http://www.ruby-lang.org/ja/"),nil,"utf-8")
doc.css("h3").each do |h3|
    puts h3.text
end


0 件のコメント:

コメントを投稿