2012-07-22 4 views
6

Ich habe gerade angefangen Nokogiri heute Morgen mit und ich frage mich, wie eine einfache Aufgabe erfüllen: Ich muss nur eine Webseite für ein div wie folgt suchen:Nokogiri: Wie finde ich ein Div nach ID und sehe, welchen Text es enthält?

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

ich meinen Code will etwas aussehen wie folgt:

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 

Also die Hauptfrage ist, wie suche ich nach diesem Div mit Nokogiri?

Jede Hilfe wird geschätzt.

Antwort

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

Für eine einfache Art und Weise ein Element durch seine ID erhalten Sie .at_css("element#id")

Beispiel für das Finden eines div mit der id „verifizieren“

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

Dieses Sie die div erhalten können und alle Elemente, die es enthält

Verwandte Themen