2016-11-13 2 views
0

так у меня есть некоторые HTML, как этотPython SCRAPY, как получить только непосредственные ребенок

<div class="content"> 
    <div class="infobox"> 
     <p> text </p> 
     <p> more text </p> 
    </div> 
    <p> text again </p> 
    <p> even more text </p> 
</div> 

И я использую этот селектор '.content p::text' я думал, это будет получить только мне непосредственные ребенок, поэтому я хотел, чтобы извлечь «текст снова» и «еще больше текста», но он также получает текст из абзацев внутри другого div, как я могу предотвратить это, я хочу только текст из абзацев, которые являются непосредственными дочерними элементами div с классом .content

ответ

2

Scrapy использует расширенный набор CSS selectors и XPath selectors. В вашем случае вы используете селектор CSS. Селектор отношений CSS, который вы хотите, - >, обозначающий отношения родитель/ребенок, как в: .content > p::text. Селекторы Scrapy описаны в разделе «Selectors» в его документации.