示例:
<p><a href="http://localhost:3000/replies/286"rel="nofollow"target"_blank">http://localhost:3000/replies/279</a><br><p>
目前正在使用Nokogiri从<a>
获取href:
doc.search('a').each do |node|
href = node.attributes['href'].try(:value)
我需要确保文本部分中的内容是href中的内容,并且我不确定如何提取它。
答案 0 :(得分: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。