2011-10-05 6 views
1

나는 구글의 첫 페이지가 정의되지 않은 메서드`이름 NilClass을 (: 무기 호에 대한 '무기 호에 대한 NilClass (NoMethodError)를 실행하는 스크립트

#!/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 

가 나는 undefined method 콘텐츠를 결과를 검색하기 위해 다음 스크립트를 실행하면' NoMethodError)`

어떻게 해결할 수 있습니까? 아니면 적어도 어떻게 실행시 표시하지 않도록 할 수 있습니까?

+0

.. (로그인, 블로그, 질문, 질문, 아이폰, 채용 정보 질문) 당신이있어 확인하기 위해 확인하는 것입니다 숨길 –

+1

하지만 방법을 'at_css'라고 가정하기보다는 무언가가 아닌 다른 것으로 메소드를 호출하면 무언가가 리턴됩니다. –

답변

1

Dave Newton이 이미 그의 의견에서 지적한 것처럼 at_css("h3.r a.l")의 결과는 귀하의 경우에 nil입니다. NilClass도 아니요 객체 nilcontent 메서드가 없습니다.

해결 방법 : 그것은 나를 위해 잘 작동하고

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