【发布时间】:2015-06-02 13:23:57
【问题描述】:
我有一个部分 HTML 文档:
<h2>Destinations</h2>
<div>It is nice <b>anywhere</b> but here.
<ul>
<li>Florida</li>
<li>New York</li>
</ul>
<h2>Shopping List</h2>
<ul>
<li>Booze</li>
<li>Bacon</li>
</ul>
在每个 <li> 项目上,我想知道项目所在的类别,例如,<h2> 标记中的文本。
这段代码不起作用,但这是我想要做的:
@page.search('li').each do |li|
li.previous('h2').text
end
【问题讨论】:
-
这将是 li 父级之前的 h2,而不是 li 之前的 h2,不是吗?
-
我真的不知道h2和li之间会有多少个元素;我只想知道如何在使用 Mechanize 搜索找到的 li 之前找到 h2。
-
您正在倒退,而不是迭代
li并尝试获取前面的h2,迭代h2然后获取li -
@pguardiario 做到了。搜索
<h2>标签,然后查看下一个兄弟并使用它来下降到<li>标签。
标签: ruby nokogiri screen-scraping