Как установить значение по умолчанию, когда селектор Scrapy возвращает None

Я пытался установить значение по умолчанию, когда результат моего селектора xpath возвращает None. Это происходит, когда на некоторых страницах узел xpath не существует, и я хочу установить, например, «N / A» или «Not found».

Я использовал следующий код, но я думаю, что он не чистый и эффективный:

value = response.xpath(property.xpath).extract_first()

if(value != None):
    data[property.name] = response.xpath(property.xpath).extract_first()
else:
    data[property.name] = "N/A"

Есть идеи? Спасибо

Ответы на вопрос(1)

Решение Вопроса

Нет необходимости делать запрос дважды, простое решение - передать значение по умолчанию:

data[property.name] = response.xpath(property.xpath).extract_first(default='N/A')

Для дальнейшего использования, если бы вы переписали свой собственный код без использования ключевого слова по умолчанию, я бы запросил один раз и использовал бы if / else:

value = response.xpath(property.xpath).extract_first()
data[property.name] = value if value else "N/A"

Ваш ответ на вопрос