2013-11-04 11 views
7

wählen Ich habe html wie folgt aussieht:Wie nächste Knoten mit scrapy

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

Ich verstehe, wie von h1 mit scrapy Informationen zu extrahieren:

content.select("//h1[contains(text(),'Text 1')]/text()").extract() 

Aber mein Ziel ist Inhalt zu extrahieren aus <div>Some info</div>

Mein Problem ist, dass ich keine spezifischen Informationen über Div haben. Alles was ich weiß, dass es genau nach <h1>Text 1</h1> geht. Kann ich mithilfe von Selektoren ein NEXT-Element im Baum erhalten? Element, das auf derselben Ebene im DOM-Baum liegt?

Etwas wie:

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

Antwort

13

Versuchen Sie, diese xpath:

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