如何使用scrapy选择下一个节点

时间:2013-11-04 12:12:46

标签: python html parsing dom scrapy

我的html看起来像这样:

<h1>Text 1</h1>
<div>Some info</div>
<h1>Text 2</h1>
<div>...</div>

我理解如何使用h1:

中的scrapy信息进行提取
content.select("//h1[contains(text(),'Text 1')]/text()").extract()

但我的目标是从<div>Some info</div>

中提取内容

我的问题是我没有关于div的任何具体信息。所有我所知道的,它完全在<h1>Text 1</h1>之后。我可以使用选择器在树中获取NEXT元素吗?元素,位于DOM树中的同一级别?

类似的东西:

a = content.select("//h1[contains(text(),'Text 1')]/text()")
a.next("//div/text()").extract()
Some info

1 个答案:

答案 0 :(得分:16)

试试这个xpath

//h1[contains(text(), 'Text 1')]/following-sibling::div[1]/text()