Ruby 最基本的Nokogiri程序失败了——文档问题还是Bug?
我决定尝试一下Nokogiri,并直接从中复制了以下程序(仅添加Ruby 最基本的Nokogiri程序失败了——文档问题还是Bug?,ruby,rubygems,nokogiri,Ruby,Rubygems,Nokogiri,我决定尝试一下Nokogiri,并直接从中复制了以下程序(仅添加require'rubygems'和I_KNOW\u I_AM_,使用LIBXML2的旧版和BUGGY版常量): 它没有返回任何结果。但是当我改变的时候 doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove')) 到 该计划如预期的那样运作。请注意,唯一的区别是在行尾添加了.read。我自己永远也不会明白这一点,因为几乎所有示例代码都没有.
require'rubygems'
和I_KNOW\u I_AM_,使用LIBXML2的旧版和BUGGY版常量):
它没有返回任何结果。但是当我改变的时候
doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove'))
到
该计划如预期的那样运作。请注意,唯一的区别是在行尾添加了.read。我自己永远也不会明白这一点,因为几乎所有示例代码都没有.read。具有讽刺意味的是,其中一个地方是一个Nokogiri开发者(at)的帖子。API中有什么变化吗?我错过了什么
我用的是Nokogiri 1.3.2
谢谢。我将您的(原始)代码复制并粘贴到一个Ruby文件中,并在我的系统(Ruby 1.8.6p369,Nokogiri 1.3.2)上运行,效果很好。您的环境中可能还有其他原因导致问题吗?撇开Nokogiri不谈,打开了什么http://www.google.com/search?q=tenderlove“)
为您返回?不确定您的问题是什么,但对open
的调用来自openuri
Notnokogiri
。所以,做一些实验,让野口吉退出游戏
$ irb
>> require 'open-uri'
=> true
>> f = open('http://www.google.com/search?q=tenderlove')
=> #<File:/var/folders/LA/LACsuKOVHtaEgmBzsJcGAE+++TI/-Tmp-/open-uri.7455.0>
>> f.read
=> "<!doctype html><head><title>tenderlove - Google Search</title>...
$irb
>>需要“打开uri”
=>正确
>>f=打开('http://www.google.com/search?q=tenderlove')
=> #
>>阅读
=>“tenderlove-谷歌搜索。。。
我升级到了Nokogiri 1.3.3,并将libxml2升级到了2.7.3。我不再需要使用荒谬的我知道我在使用旧版和BUGGY版的libxml2=1语句来避免错误消息,并且程序可以在没有无关信息的情况下运行。阅读。检查你的Nokogiri和libxml版本总是很好的,以确保它们是最新的
截至今天(9/22/09),这是MacOS上的最新版本:
nokogiri -v
---
nokogiri: 1.3.3
warnings: [ ]
libxml:
compiled: 2.7.4
loaded: 2.7.4
binding: extension
(我在空警告数组中放置了一个空格,以防止它看起来像一个盒子。)open('))返回#我的irb会话的行为与你的一样。如果我在没有.read的情况下使用Norokiri,它会返回,其他什么都不会返回。如果我使用.read,我会得到完整的文件。所以我不知道为什么将打开的URI传递给Nokogiri会激活除我之外的所有人的安装的读取方法。你使用的是什么版本的Ruby?Ruby 1.8.6(2008-08-11补丁级别287)[universal-darwin9.0]
$ irb
>> require 'open-uri'
=> true
>> f = open('http://www.google.com/search?q=tenderlove')
=> #<File:/var/folders/LA/LACsuKOVHtaEgmBzsJcGAE+++TI/-Tmp-/open-uri.7455.0>
>> f.read
=> "<!doctype html><head><title>tenderlove - Google Search</title>...
nokogiri -v
---
nokogiri: 1.3.3
warnings: [ ]
libxml:
compiled: 2.7.4
loaded: 2.7.4
binding: extension