2013-09-17 4 views
3

Я использую Scrapy для извлечения данных из веб-сайта, но у меня есть проблема с селектором XPath, предполагая, что у меня есть этот HTML код:XPath рекурсивные дети выбор

<div id="_parent"> 
    Hi! 
    <p>I am a child!</p> 
    <span class="someclass">I am a <b>span</b> child!</span> 
</div> 

что я получаю:

I am a child 
I am a child! 

, что я должен получить:

Hi! 
I am a child! 
I am a span child! 

XPath Я использую следующий: .// сОн [@Id = "_ родительских"] // */текст() Я знаю, это потому, что это не прямые дети #_parent div, но как я могу рекурсивно получить всех детей?

ответ

6

Вы можете просто использовать: .//div[@id="_parent"]//text() для извлечения всех дочерних узлов текстового узла выбранного узла. You can test it here.

0

Если вы хотите, чтобы все данные элемента (так, все струнные узлы), вы также можете использовать

data(.//div[@id="_parent"]) 
Смежные вопросы