如果使用XPath在Scrapy中使用其他节点的父节点,如何从子节点获取文本

时间:2014-10-29 13:08:12

标签: python html xpath scrapy

我遇到了一个问题,我必须从子节点获取结果,该节点可能是也可能不是父节点到scrapy中使用Xpath的其他节点。考虑像

这样的情况
<h1 class="main">
 <span class="child">data</span>
</h1>

<h1 class="main">
<span class="child">
 <span class="child2">data</span>
</span>
</h1>

我的解决方案是response.xpath(".//h1[@class='main']/span/text()").extract()

2 个答案:

答案 0 :(得分:1)

使用//text,它会返回 span 中父级和子级列表中列表中的所有文本元素:

response.xpath(".//h1[@class='main']/span//text()").extract()

答案 1 :(得分:1)

您可以使用:

  • response.xpath("string(.//h1[@class='main']/span)").extract()
  • 甚至response.xpath("string(.//h1[@class='main'])").extract()如果您在整个标题文字之后
相关问题