Nokogiri:如何通过id找到div并查看它包含的文本?

kny*_*ygw 8 screen-scraping ruby-on-rails nokogiri

我今天早上刚刚开始使用Nokogiri,我想知道如何执行一项简单的任务:我只需要在网页上搜索这样的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
Run Code Online (Sandbox Code Playgroud)

所以主要的问题是,如何使用nokogiri搜索div?

任何帮助表示赞赏.

aro*_*ero 16

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'
Run Code Online (Sandbox Code Playgroud)


Qwe*_*tie 5

对于通过其 ID 获取元素的简单方法,您可以使用 .at_css("element#id")

查找 ID 为“verify”的 div 的示例

html = Nokogiri::HTML(open("http://example.com"))
puts html.at_css("div#verify")
Run Code Online (Sandbox Code Playgroud)

这将为您提供 div 及其包含的所有元素