我决定放弃引入nokogiri尝试,并从http://nokogiri.rubyforge.org/nokogiri/Nokogiri.html直接复制下面的程序(仅添加require 'rubygems'
和I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2
常数):最基本的Nokogiri程序失败 - 文档问题或错误?
require 'rubygems'
I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2 = 1
require 'nokogiri'
require 'open-uri'
# Get a Nokogiri::HTML:Document for the page we’re interested in...
doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove'))
# Do funky things with it using Nokogiri::XML::Node methods...
####
# Search for nodes by css
doc.css('h3.r a.l').each do |link|
puts link.content
end
它没有返回结果。但是,当我改变
doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove'))
到
doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove').read)
程序担任预期。注意唯一的区别是在行尾添加了.read。我永远都不会自己弄明白这一点,因为几乎所有的示例代码都会抛弃.read。具有讽刺意味的是,其中一个地方是Nokogiri的开发者之一(在http://tenderlovemaking.com/2008/11/18/underpant-free-excitement)。 API中有东西改变了吗?我错过了什么?
我使用的是Nokogiri 1.3.2。
谢谢。
你使用的是什么版本的Ruby? – Chuck 2009-07-16 10:03:26
红宝石1.8.6(2008-08-11 patchlevel 287)[universal-darwin9.0] – gauth 2009-07-16 17:42:40