简单的 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”的未定义方法调用的主要内容,如果未能解决你的问题,请参考以下文章