Как установить значение по умолчанию, когда селектор Scrapy с extract () возвращает None? - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь определить значение тега, который не всегда присутствует на страницах, которые я копирую с помощью Scrapy. Я использую функцию extract() вместо extract_first(). Поэтому я не могу установить значение по умолчанию, как предложено в этом SO сообщении .

Это не работает:

def parse(self, response):
        yield {
          'comments': response.css('[itemprop=commentCount]::attr(content)').extract(default=None)
          }

Как установить None по умолчанию, если я хочу использовать extract() вместо extract_first()?

Большое спасибо заранее!

1 Ответ

0 голосов
/ 10 ноября 2018

Попробуйте этот синтаксис:

{'comments': response.css('[itemprop=commentCount]::attr(content)').extract() or None}

Если результат response.css(CSS) является пустым списком, то None будет назначено как значение клавиши comments. В противном случае фактическое значение будет присвоено

...