11

我今天早上刚开始使用 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

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

任何帮助表示赞赏。

4

2 回答 2

20
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'
于 2012-07-22T16:51:25.127 回答
7

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

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

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

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

于 2017-01-19T04:39:48.490 回答