python - 如何对没有属性的 div 内的节点进行 XPath 处理

标签 python xpath scrapy

我想单步执行 sibX 节点来获取标签。奇怪的是,我可以在 sib0 下获得标签 child0x,但不能获得后续 sib 的标签。

我尝试从 sib0 执行 preceding-sibling::ancestor::,但 XPath 始终返回空。

<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>

最佳答案

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

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

您也可以对'child'做同样的事情:

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

关于python - 如何对没有属性的 div 内的节点进行 XPath 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59049331/

相关文章:

python - Kubernetes在CentOS 7上导入问题Python 3.6.8

python - writerows 输出到 csv 文件

xml - xsl中字符串的初始数字部分或整数部分

python - Scrapy Xpath 输出为空

python - Scrapy FormRequest 参数不起作用,而是显示所有结果

python-2.7 - 从脚本中抓取。不会导出数据

python - python 如何跟踪文件中的行

Python:编码后立即解码

xpath - XPath 中是否有 "if -then - else "语句?

javascript - 如何在 JavaScript 中使用 XPath 从命名空间的 OOXML 中进行选择?