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

原文 标签 python web-scraping scrapy css-selectors

我试图给出一个标签的值,这个标签并不总是出现在我用scrapy刮的页面中。我使用的是extract()函数,而不是extract_first()。因此,我似乎无法设置默认值,如this SO post中建议的那样。
这不起作用:

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

当我想使用None而不是extract()时,如何将extract_first()设置为默认值?
非常感谢提前!

最佳答案

请尝试以下语法:

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

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

相关文章:

python - 为什么XMLFeedSpider无法遍历指定的节点?

python - 如何绕过Incapsula与Python

html - VBA获得在线货币

html - Powershell Web Scraping SSL / TLS问题

go - 柯利找不到任何链接

python - Scrapy-为gif制作网络爬虫

python - 从docker容器访问Host redis数据库

python - 连接到mongodb时如何避免提示输入PEM密码?

python - MLP分类

python - 从Django加载多线夹具字段