【问题标题】:Xpath selecting data after the <br/> tagXpath 选择 <br/> 标签后的数据
【发布时间】:2018-05-14 10:48:41
【问题描述】:

我有这个 html:

<div class="sys_key-facts">
  <p>
   <strong>Full-time </strong>1 year<br>
   <strong>Part-time</strong> 2 years
  </p>
</div>

我想得到Part-time(After Part-time)的值,即:

2 years</p>

我的 Xpath 代码是:

//div[@class="sys_key-facts"]/p[strong[contains(text(), "Part-time")]][preceding-sibling::br]/text() 

但这返回的是空的。请让我知道我在哪里弄错了。 谢谢

【问题讨论】:

    标签: python xml xpath scrapy


    【解决方案1】:

    问题在于p[preceding-sibling::br] 意味着该段落有换行兄弟,而br 实际上是p 的孩子——不是兄弟

    因此您可以将 XPath 更新为

    //div[@class="sys_key-facts"]/p[strong[contains(text(), "Part-time")] and br]/text()[last()]
    

    或尝试使用 XPath 来获得所需的输出:

    //div[@class="sys_key-facts"]//strong[.="Part-time"]/following-sibling::text()
    

    【讨论】:

    • 非常感谢您的快速回复,您提供的代码正在运行,再次感谢
    猜你喜欢
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    相关资源
    最近更新 更多