编写一个简单的Ruby脚本w/ Open URI



我正在用Ruby构建一个简单的新闻聚合器。我对这门语言完全陌生,我刚刚知道如何使用open uri函数。

现在,我的问题是如何解析html页面。在Ruby中有内置的解析器吗?

顺便说一句,我不使用rails,我希望它是非常简单的

提前感谢!

要解析HTML,我建议使用Nokogiri。特点:

  • XPath支持文档搜索
  • CSS3选择器支持文档搜索
  • XML/HTML builder

有一个很好的关于Nokogiri抓取屏幕的视频。

简单的答案是肯定的,有解析器。我不能回答你的问题,特别是不知道你想从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/

相关内容

  • 没有找到相关文章

最新更新