运行脚本时,nil的未定义方法`name':NilClass(NoMethodError)

时间:2011-10-05 16:36:45

标签: ruby

当我运行以下脚本来检索谷歌搜索结果的第一页

#!/usr/bin/env ruby
require 'rubygems'
require 'nokogiri'
require 'open-uri'

  doc = Nokogiri::HTML(open('http://www.google.co.uk/search?q=stackoverflow'))         

  doc.css('div.vsc').each do |element|
    puts element.at_css("h3.r a.l").content
  end

我得到nil的undefined method内容:NilClass(NoMethodError)`

我怎么能解决这个问题?或者至少如何避免它在执行时显示?

1 个答案:

答案 0 :(得分:1)

正如Dave Newton在评论中已经指出的那样,at_css("h3.r a.l")的结果是nilNilClass和对象nil都没有方法content

解决方法:

doc.css('div.vsc').each do |element|
  next unless elem = element.at_css("h3.r a.l")
  puts elem.content
end