我正在使用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
有谁知道我为什么会收到这个错误?
答案 0 :(得分:2)
at_css
将返回nil
。
如果您想在MoreInfo
- class元素中获取Info_listing
类元素,您最好使用以下代码:
doc.css(".Info_listing .MoreInfo").each do |x|
puts x[:href]
end