首页 > 解决方案 > 如何获取特定的 xpath 标记值

问题描述

<div class="container">
<span class="price">
  <bdi> 140 </bdi>
</span>
<span class="price">
  <del>
    <bdi>90</bdi>
  </del>
  <ins>
    <bdi> 120 </bdi>
  </ins>
</span>
</div>

我想抓取一个 html 格式如下的网站。在这里,我不想 bdi 标记位于 del 标记下的值,而想要位于 span 类和 ins 标记下的 bdi 标记值。有什么办法可以解决吗?

标签: xpathscrapy

解决方案


对你来说不是很平常的//span/ins/bdi/text()工作吗?这是“哪个父母的文本<bdi><ins>哪个父母<span>”?span>ins>bdi::text我想CSS 变体也应该可以工作。


抱歉,没有注意到您需要两个值。在这种情况下.xpath('//bdi[not(parent::del)]/text()').extract()会很好地工作。


推荐阅读