首页 > 解决方案 > 如何为没有属性的 div 内的节点进行 XPath

问题描述

我想逐步浏览sibX节点以获取标签。奇怪的是,我可以得到标签child0xsib0但不能得到后续同胞的标签。

我试过做preceding-sibling::,但 XPath 总是返回空ancestor::sib0

<div class="parent">
    <div> <!-- *** empty div starts here *** -->
        <div class="sib0">
            <label class="child00">child00</label>
            …
            <label class="child0N">child0N</label>
        </div>
        <div class="sib1">
            <label class="child10">child10</label>
            …
            <label class="child1N">child1N</label>
        </div>
        <div class="sib2">
            <label class="child20">child20</label>
            …
            <label class="child2N">child2N</label>
        </div>
    </div> <!-- *** empty div ends *** -->
<div>

标签: pythonxpathscrapy

解决方案


您可以在 XPath 中使用 contains 来访问其类中包含'sib'的所有节点。

response.xpath('//*[contains(@class, "sib")]//text()').getall()

你也可以做同样的事情'child'

response.xpath('//*[contains(@class, "child")]/text()').getall()

推荐阅读