这是我的HTML:
<div class="main">
<p>Abcd</p>
<p>Abcd</p>
<h3>Head 3.1</h3>
<p>Abcd</p>
<h3>Head 3.2</h3>
</div>
我需要使用 XPath 选择<div>
标签内和第一个<h3>
标签之前的<p>
标签。怎么做?
您可以在 xpath 中使用[not(preceding-sibling::h3)]
语句来仅获取上面没有h3
节点的节点:
> response.xpath("//div/p[not(preceding-sibling::h3)]").extract()
< [u'<p>Abcd</p>', u'<p>Abcd</p>']