Простой ответ - да, есть парсер. Я не могу ответить на ваш вопрос конкретно, не зная, что вы пытаетесь извлечь из HTML, но я включил некоторый исходный код ниже. Если вы умеете читать код ruby, то это довольно очевидно.
require 'open-uri'
require 'pp'
open('http://ruby-lang.org') do |f|
puts "URI: #{f.base_uri}"
puts "Content-type: #{f.content_type}, charset: #{f.charset}"
puts "Encoding: #{f.content_encoding}"
puts "Last modified: #{f.last_modified}"
puts "Status: #{f.status.inspect}"
pp f.meta
puts "----"
3.times {|i| puts "#{i}: #{f.gets}" }
end
производит:
URI: http://www.ruby-lang.org/en/
Content-type: text/html, charset: utf-8
Encoding: []
Last modified:
Status: ["200", "OK"]
{"date"=>"Mon, 15 Nov 2010 17:54:07 GMT",
"server"=>
"Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 mod_ruby/1.2.6 Ruby/1.8.5(2006-08-25)",
"transfer-encoding"=>"chunked",
"content-type"=>"text/html;charset=utf-8"}
----
0: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
1: "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2: <html xmlns="http://www.w3.org/1999/xhtml">
Вот еще одна ссылка, показывающая пример использования open-uri: http://juretta.com/log/2006/08/13/ruby_net_http_and_open-uri/