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

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

我正在研究使用Nokogiri和CSS选择器的Ruby脚本。我试图从html抓取一些数据,如下所示:

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

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

第2部分中感兴趣的数据是一个包含tr和td元素的表,这些元素没有任何类或id标识符。其他部分也有我不感兴趣的表。整个页面上的诸如page.css('table tr td')之类的东西,除了我所追求的那些表之外,还会从所有其他表中选择,而我d尽可能避免这种情况。

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.