2012-07-22 16 views
6

simplemente empecé a usar Nokogiri esta mañana y me pregunto cómo realizar una tarea sencilla: sólo hay que buscar una página web para un div así:Nokogiri: ¿cómo encontrar un div por id y ver qué texto contiene?

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

Quiero mi código para buscar algo como este:

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 

Entonces la pregunta principal es, ¿cómo busco ese div usando nokogiri?

Cualquier ayuda es apreciada.

Respuesta

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

Para una forma sencilla de obtener un elemento por su ID se puede utilizar .at_css("element#id")

Ejemplo para encontrar un div con el id "verificar"

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

Esto le dará la div y todos los elementos que contiene

Cuestiones relacionadas