跟随所有p标签,除非并且如果出现其他类型的兄弟,则停止

时间:2017-11-30 11:07:42

标签: xpath scrapy

除非出现任何其他类型的兄弟,否则我想关注<p>代码

案例1:

<p>a</p>
<p>b</p>
<h3>Foo</h3>
<p>c</p>

案例2:

<p>a</p>
<p>b</p>
<h2>Foo</h2>
<p>c</p>

我的代码使用上述条件,直到找到h3

'//node/following-sibling::p[following-sibling::h3]'

但是在没有h3h2

的情况2中它不起作用

所以我正在寻找一种能够继续关注的逻辑,除非找到除p以外的任何其他标签,因为它可能是h1h2 h3等。

因此,在这两种情况下,我只想选择<p>a</p><p>b</p>

我的代码在循环中运行,因此我没有足够的信息来了解作为兄弟节点的内容。

1 个答案:

答案 0 :(得分:2)

要获得前7个p个节点(<div id="toc">之前的兄弟节点),您可以在XPath下面尝试:

//div[@class='mw-parser-output']/p[following-sibling::div[@id='toc']]