2012-07-22 72 views
6

我剛開始早上使用引入nokogiri,我想知道如何執行簡單的任務:我只需要搜索網頁中,這樣一個div:Nokogiri:如何通過id找到div並查看它包含哪些文本?

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

我想我的代碼看起來像這樣:

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 

所以主要的問題是,如何使用nokogiri搜索該div?

任何幫助表示讚賞。

回答

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

對於一個簡單的方式來獲得其ID的元素,你可以使用.at_css("element#id")

例尋找一個div id爲「驗證」

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

這將讓你的DIV和它包含的所有元素

相關問題