Python 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 ответов


селекторы CSS обычно не имеют синтаксиса для извлечения текстового содержимого.

но Scrapy расширяет селекторы CSS с помощью ::text псевдо-элемент, поэтому вы хотите использовать cam.css('::text').extract() это должно дать вам то же самое как cam.xpath('.//text()').extract()

Примечание: Scrapy также добавляет ::attr(attribute_name) функциональный псевдоэлемент для извлечения значения атрибута (это также невозможно со стандартными селекторами CSS)