Python Scrapy无法从类中提取文本

时间:2014-02-05 11:09:10

标签: python css python-2.7 css-selectors scrapy

请查看此HTML代码:

<header class="online">
                        <img src="http://static.flv.com/themes/h5/img/iconos/online.png"> <span>online</span> 
            <img src="http://static.flv.com/themes/h5/img/iconos/ojo16.png"> 428                        <p>xxfantasia</p>
</header>

我想在里面找到文字(在这种情况下是428)。我用过这个:

        def parse(self, response):
            sel = Selector(response)
            cams = sel.css('header.online')
            for cam in cams:
                  print cam.css('text').extract()

我想我使用了正确的css选择器,但结果是空的。

任何帮助?

1 个答案:

答案 0 :(得分:20)

CSS选择器don't normally have syntax to extract text content

但Scrapy使用::text伪元素扩展了CSS选择器,因此您希望使用cam.css('::text').extract()来提供与cam.xpath('.//text()').extract()相同的内容

注意:Scrapy还添加了::attr(attribute_name)功能伪元素来提取属性值(这对于标准CSS选择器来说也是不可能的)