@denismatveyev7

Scrapy — input_processor?

Привет всем!
items.py:
import scrapy
from scrapy.loader.processors import MapCompose

def filter_spaces(value):
    return value.strip(" ").strip("\n")

class LotItem(scrapy.Item):
    num = scrapy.Field(input_processor=MapCompose(filter_spaces))


spider.py:

def parse_item(self, response):
    item = LotItem()                    
    item['num'] = response.xpath('//div/span/text()').extract()[0]
    yield item


response.xpath('//div/span/text()').extract() возвращает строку типа:

"\n1234 "

А мне нужно получить - “1234”
Но мой код не работает. Почему?
Спасибо!!!
  • Вопрос задан
  • 341 просмотр
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
разве не
item['num'] = response.xpath('//div/span/text()').extract()[0]
 item = LotItem()


будет правильно?

ну а вообще
strip()
режет пробелы и переводы в конце строки и так, и вполне можно
item['num'] = response.xpath('//div/span/text()').extract()[0].strip()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы