仅当 nokogiri 某些 HTML 结构时获取文本

Getting text only when nokogiri certain HTML structure

为了从网络上获取(抓取)内容,我一直在努力使用 nokogiri 库,但我不明白如何只获取没有嵌套标签的文本。 这是我解析的

<div class="line1">text I need
<br><div class="podp_k">group:</div><a class="GR" title="go to this group" href="#" rel="?sectID=2">group 1</a>
<br>
<div class="podp_k">brand:</div><a class="BR" title="go to brand" href="#" rel="?sectID=0&amp;brand=16">China&nbsp;&nbsp;CHINA</a>
</div>

这是我抓取它的方式

tagcloud_elements = nokogiri_object.css("div#products_tbody > table > tbody > tr > td > div.line1 > text()")
f.puts tagcloud_element.text.gsub(/^\s+/,'')

最后的 gsub 几乎完全符合我的需要,但我在后面留下了一些空格。有人可以建议从上面的例子中只获得 "text I need" 的最佳方法吗?

如果您不再使用该文档,我会删除该部分中的其他节点。

nokogiri_object.css("div.line1 *").each(&:remove)
nokogiri_object.at_css("div.line1").text.strip # => "text I need"