python - 如何为没有属性的 div 内的节点进行 XPath
问题描述
我想逐步浏览sibX
节点以获取标签。奇怪的是,我可以得到标签child0x
,sib0
但不能得到后续同胞的标签。
我试过做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>
解决方案
您可以在 XPath 中使用 contains 来访问其类中包含'sib'
的所有节点。
response.xpath('//*[contains(@class, "sib")]//text()').getall()
你也可以做同样的事情'child'
:
response.xpath('//*[contains(@class, "child")]/text()').getall()
推荐阅读
- python - 在 Beutifulsoup4 中查找多个标签并将它们插入到一个字符串中
- java - Java中的延迟队列实现
- webpack - 错误:不应导入命名的导出“版本”(导入为“版本”)
- vba - VBA Word 从 normal.dotm 创建类模块对象
- c# - EF Core 不会两次从数据库中获取数据
- f# - 创建一个“加法”计算表达式
- javascript - 如何在 React 或 JavaScript 中更新嵌套对象的所有值
- python - 如何让 HMM 在 TensorFlow 中处理实值数据
- python - Django 通道 websocket 连接和断开连接(Nginx + Daphne + Django + Channels)
- azure-devops - 由于 TypeError,包无法发布:无法读取 null 的属性“toLowerCase”