【问题标题】:How extract text from a tag using Nokogiri如何使用 Nokogiri 从标签中提取文本
【发布时间】:2014-09-29 18:42:29
【问题描述】:

例子:

<p><a href="http://localhost:3000/replies/286"rel="nofollow"target"_blank">http://localhost:3000/replies/279</a><br><p>

目前使用 Nokogiri 从&lt;a&gt; 获取href:

doc.search('a').each do |node|
  href = node.attributes['href'].try(:value)

我需要确保文本部分中的内容是 href 中的内容,但我不确定如何提取它。

【问题讨论】:

  • node.text 会给你文本内容。
  • @lorefnon 谢谢 - 这很简单!

标签: html regex nokogiri href extraction


【解决方案1】:

以下是检查的基础知识:

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<p><a href="http://localhost:3000/replies/286"rel="nofollow"target"_blank">http://localhost:3000/replies/279</a><br><p>
EOT

link = doc.at('a')
link['href'] == link.text # => false

修改 HTML 使 HREF 和 text 匹配:

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<p><a href="http://localhost:3000/replies/279"rel="nofollow"target"_blank">http://localhost:3000/replies/279</a><br><p>
EOT

link = doc.at('a')
link['href'] == link.text # => true

at 仅返回与选择器匹配的第一个节点,因此如果您要检查多个节点,您将需要使用 search 并遍历它返回的 NodeSet。

【讨论】:

    猜你喜欢
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 2020-02-08
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多