如何为 Scrapy 项目加载器使用布尔值

How to use a boolean for Scrapy item loader

我正在尝试将项目加载器与 Scrapy 0.24.5 一起使用。当我使用 add_item() 方法时,如果我想使用布尔值或整数,它会抛出异常。

item.add_value('full_update', 1)
item.load_items()

产生以下错误:

ValueError: Error with output processor: field='full_update' value=[1] error='TypeError: expected string or buffer'

我知道它正在寻找一个字符串。但是我需要在 mongodb 中存储一个布尔值。

是否有其他项目加载器方法可用于实现此目的?

问题不在于 add_value() 方法。这是我的一个输出处理器需要一个字符串值,full_update 字段正在 运行 通过。

在我的 items.py 中,我将 output_processor=Identity() 添加到我的 full_update 字段中,现在可以使用了:

class ProductsItem(scrapy.Item):
    full_update = scrapy.Field(output_processor=Identity())

class ProductsItemLoader(ItemLoader):
    default_item_class = ProductsItem
    default_output_processor = Compose(TakeFirst(), remove_tags, lambda v: replace_escape_chars(text=v, replace_by=' '), lambda v: v.encode('utf-8'), lambda v: ' '.join(v.split()))
pass