【问题标题】:Nokogiri: how to find a div by id and see what text it contains?Nokogiri:如何通过 id 查找 div 并查看其中包含的文本?
【发布时间】:2012-07-21 01:43:21
【问题描述】:

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

感谢任何帮助。

【问题讨论】:

    标签: ruby-on-rails screen-scraping nokogiri


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:
      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'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-24
        • 2012-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-08
        相关资源
        最近更新 更多