nil的未定义方法`[]':使用Nokogiri时的NilClass

时间:2015-01-31 12:45:19

标签: ruby nokogiri scrape

我正在使用Nokogiri从HTML文档中抓取数据,但我遇到了以下错误:

`block in <main>': undefined method `[]' for nil:NilClass (NoMethodError)

这是重现问题的代码:

require 'rubygems'
require 'nokogiri'
require 'open-uri'

url = "http://www.somewebsite.com/somepage/some"
doc = Nokogiri::HTML(open(url))

puts doc.at_css("title").text
doc.css(".Info_listing").each do |x|
  puts x.at_css(".MoreInfo")[:href]
end

有谁知道我为什么会收到这个错误?

1 个答案:

答案 0 :(得分:2)

如果没有匹配的元素,

at_css将返回nil

如果您想在MoreInfo - class元素中获取Info_listing类元素,您最好使用以下代码:

doc.css(".Info_listing .MoreInfo").each do |x|
  puts x[:href]
end