简单的 Nokogiri 不起作用:“Nokogiri”的未定义方法调用

Posted

技术标签:

【中文标题】简单的 Nokogiri 不起作用:“Nokogiri”的未定义方法调用【英文标题】:Simple Nokogiri not working: undefined method call for "Nokogiri" 【发布时间】:2013-10-03 00:16:35 【问题描述】:

我安装了 Ruby 和 Nokogiri gem。在 irb 中,我尝试:

require 'nokogiri'
require 'open-uri'

url = 'http://www.amazon.com/The-Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=sr_1_1?ie=UTF8&qid=1380758047&sr=8-1&keywords=the+programmatic+programmer'

data = Nokogiri::html::(open(url))

puts data

我总是从“数据”变量中得到同样的错误。

NoMethodError: undefined method 'call' for Nokogiri:Module
  from (irb):5
  from C:/RailsInstaller/Ruby1.9.3/bin/irb:12:in '(main)'

我是编程新手,所以这可能很明显。原谅我的无知。

【问题讨论】:

您的语法不正确。试试看:Nokogiri::HTML(open(url)) 【参考方案1】:

试试

Nokogiri::HTML.parse(open(url))

Nokogiri::HTML(open(url))

【讨论】:

今天,第一次尝试 Nokogiri::HTML.parse(open(url)) 工作。我尝试了第二个,它也有效。我一遍又一遍地看到这个错误。【参考方案2】:

我遇到了类似的错误

NoMethodError: undefined method `call' for []:Nokogiri::XML::NodeSet

但出于不同的原因,在我的情况下,这是由于一个额外的点(错误放置),如下所示:

  status = data.css.("status font-large").text

如下图所示,通过删除 css 后多余的点来修复它

  status = data.css("status font-large").text

我希望这对其他人有帮助

【讨论】:

以上是关于简单的 Nokogiri 不起作用:“Nokogiri”的未定义方法调用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Nokogiri 访问属性

ruby 使用Nokogiri的简单Ruby刮刀

加载简单Pag Nokogiri

将 Nokogiri 文档转换为 Ruby 哈希

无法在 Windows 中安装 Nokogiri for Ruby

使用 foreach 循环的简单查询不起作用,但不起作用