Python scrapy,如何才能获得直接的孩子

时间:2016-11-13 07:16:41

标签: python html css-selectors scrapy

所以我有一些像这样的HTML

<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'我认为这只会让我直接的孩子,所以我希望它再次提取&#34;文本&#34;和更多的文字&#34;但它也从另一个div中的段落中获取文本,我怎样才能防止这种情况发生,我只想要来自div的直接子节点的文本与类.content

2 个答案:

答案 0 :(得分:2)

Scrapy使用一组扩展的CSS selectorsXPath selectors。在您的情况下,您正在使用CSS选择器。您想要的CSS关系选择器是>表示父/子关系,如:.content > p::text。 Scrapy的选择器在标题为&#34; Selectors&#34;在其文档中。

答案 1 :(得分:1)

获取孩子:div&gt; p(文字,更多文字) 在你的情况下得到你需要的东西:div + p

http://www.w3schools.com/cssref/css_selectors.asp 值得一读