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)
          }

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

非常感谢!

最佳答案

试试这个语法:

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

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

关于python - 当带有 extract() 的 Scrapy 选择器返回 None 时如何设置默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53238215/

相关文章:

python - 带有仅适用于本年度的表单数据的 POST 请求

excel - 使用 XMLHTTP 方法时获取表头

c# - 无法单击具有特定属性的按钮

python - 在django模板中将unicode解码为字符串

python - 从子类继承的属性打印子对象而不是来自父类的字符串

python - 将文件映射到内存

python - 如何使用python在HTML中访问/设置 'select'标签

linux - Scrapy:没有名为 'parsel' 的模块

python - Scrapy - 如何获取重复的请求引用者

python - Keras:如何扩展 validation_split 以生成第三组,即测试集?