如何在Ruby的标题元素之间进行选择

问题描述 投票:0回答:1

我正在研究使用Nokogiri和CSS选择器的Ruby脚本。我正在尝试从HTML中抓取一些看起来像这样的数据:

<h2>Title 1</h2>
(Part 1)
<h2>Title 2</h2>
(Part 2)
<h2>Title 3</h2>
(Part 3)

是否只有通过指定代表起点和终点的Part 2元素的文本,才能从h2中进行选择?

Part 2中感兴趣的数据是一个表,其中包含trtd元素,没有任何classid标识符。其他部分也有我不感兴趣的表。

之类的东西
page.css('table tr td')

在整页上,除了我要使用的表之外,还将从所有其他表中进行选择,如果可能的话,我想避免这种情况。

ruby css-selectors nokogiri
1个回答
0
投票

根据this question,恐怕没有CSS选择器可用于元素文本。首先提取“(第2部分)”,然后使用Nokogiri选择其中的表元素如何。

text = "" //your string, or content from a file

part2 = text.scan(/<h2>Title 2<\/h2>\s+(.+)?<h2>/ms).first.first

doc = Nokogiri::HTML(part2)

# continue select table elements from doc

注意:(第2部分)不能包含任何h2标记,否则正则表达式应该不同。

© www.soinside.com 2019 - 2024. All rights reserved.