当我运行以下脚本来检索谷歌搜索结果的第一页
时#!/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)`
我怎么能解决这个问题?或者至少如何避免它在执行时显示?
答案 0 :(得分:1)
正如Dave Newton在评论中已经指出的那样,at_css("h3.r a.l")
的结果是nil
。 NilClass
和对象nil
都没有方法content
。
解决方法:
doc.css('div.vsc').each do |element|
next unless elem = element.at_css("h3.r a.l")
puts elem.content
end