有下一个块
<div class="text">
<h1>head1</h1>
Text1 <br/><br/> text12 <br/><br/> text 13
<h1>head11</h1>
Text11
<h3>head3</h3>
Text2
</div>
如何在第一个 H1 之后获取文本,忽略<br/><br/>
为
文本1 文本12 文本 13
我使用 Grab Python page = g.doc.select('//div[@class="text"]/h3[1]/follow-sibling::text((]'( 结果是
文本1 文本12 文本 13 文本11 文本2
您可以尝试选择只有一个前面h1
兄弟姐妹的text()
...
//div[@class='text']/text()[count(preceding-sibling::h1)=1]
另一种选择是尝试使用凯斯方法...
//div[@class='text']/h1[1]/following-sibling::text()[count(.|//div[@class='text']/h1[1+1]/preceding-sibling::text()) = count(//div[@class='text']/h1[1+1]/preceding-sibling::text())]
这是Kayessian方法的一个更好的例子和解释。