2012-07-22 12 views
6

Ho appena iniziato a utilizzare Nokogiri questa mattina e mi chiedo come eseguire un compito semplice: ho solo bisogno di cercare una pagina web per un div come questo:Nokogiri: come trovare un div per id e vedere quale testo contiene?

<div id="verify" style="display:none"> site_verification_string </div>

voglio che il mio codice per guardare qualcosa così:

require 'nokogiri' 
require 'open-uri' 

url = h(@user.first_url) 
doc = Nokogiri::HTML(open(url)) 
if #SEARCH_FOR_DIV#.text == site_verification_string 
    @user.save 
end 

Quindi la domanda principale è, come faccio a cercare quel div usando nokogiri?

Qualsiasi aiuto è apprezzato.

risposta

12
html = <<-HTML 
    <html> 
    <body> 
     <div id="verify" style="display: none;">foobar</div> 
    </body> 
    </html> 
HTML 
doc = Nokogiri::HTML html 
puts 'verified!' if doc.at_css('[id="verify"]').text.eql? 'foobar' 
1

Per un modo semplice per ottenere un elemento dal suo ID è possibile utilizzare .at_css("element#id")

Esempio per la ricerca di un div con l'id "Verifica"

html = Nokogiri::HTML(open("http://example.com")) 
puts html.at_css("div#verify") 

questo modo si ottiene la div e tutti gli elementi che contiene

Problemi correlati