gpt4 book ai didi

ruby-on-rails - 如何使用 Nokogiri 提取子文本?

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:29 29 4
gpt4 key购买 nike

我遇到了这个 HTML:

<div class='featured'>
<h1>
How to extract this?
<span>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</span>
<span class="moredetail ">
<a href="/hello" title="hello">hello</a>
</span>
<div class="clear"></div>
</h1>
</div>

我想提取 <h1>文本“How to extract this?”。我该怎么做?

我尝试使用以下代码,但附加了其他元素。我不确定如何排除它们,所以我只得到 <h1>文本本身。

doc = Nokogiri::HTML(open(url))      
records = doc.css(".featured h1")

最佳答案

#css 返回一个集合,使用#at_css 获取第一个匹配的节点。它的所有内容,甚至文本,都是 child ,在这种情况下,文本是它的第一个 child 。如果您想要所有不是元素的子项,您也可以执行类似 children.reject &element? 的操作。

data = '
<div class="featured">
<h1>
How to extract this?
<span>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</span>
<span class="moredetail ">
<a href="/hello" title="hello">hello</a>
</span>
<div class="clear"></div>
</h1>
</div>
'

require 'nokogiri'
text = Nokogiri::HTML(data).at_css('.featured h1').children.first.text
text # => "\n How to extract this?\n "

或者,您可以使用 xpaths:

Nokogiri::HTML(data).at_xpath('//*[@class="featured"]/h1/text()').text

关于ruby-on-rails - 如何使用 Nokogiri 提取子文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8549924/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com