2

我安装了 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)'

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

4

2 回答 2

2

尝试

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

或者

Nokogiri::HTML(open(url))
于 2013-10-03T00:25:18.117 回答
0

我有一个类似的错误

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

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

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

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

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

我希望这对其他人有帮助

于 2018-06-18T11:27:04.717 回答