当带有 extract() 的 Scrapy 选择器返回 None 时如何设置默认值?

pet*_*ich 3 python css-selectors scrapy web-scraping

我试图产生一个标签的值,该标签并不总是出现在我用 Scrapy 抓取的页面中。我正在使用该extract()函数而不是extract_first(). 因此,我似乎无法设置默认值,就像这篇 SO post中所建议的那样。

这不起作用:

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

None当我想使用extract()而不是时如何设置为默认值extract_first()

首先十分感谢!

And*_*son 5

试试这个语法:

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

如果结果为response.css(CSS)空列表,则将None被分配为comments键的值。否则,将分配实际值