X标签后的Xpath选择数据

时间:2018-05-14 10:48:42

标签: python xml xpath scrapy

我有这个HTML:

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

我想获得兼职(兼职之后)的价值,即:

2 years</p>

我的Xpath代码是:

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

但这是空的。请让我知道我错在哪里。 感谢

1 个答案:

答案 0 :(得分:3)

问题是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()