如果我已经填充了Item(),我如何用它加载itemloader?
例如
from scrapy import Item, ItemLoader, Field
class MyLoader(ItemLoader):
desc_out = MapCompose(unicode.strip)
class MyItem(Item):
desc = Field()
item = MyItem()
item['desc'] = "\r\t\n some text \t\n"
loader = MyLoader(item)
loader.load_item()
#output: {'desc': "\r\t\n some text \t\n"}
newloader = MyLoader(item = MyItem(**{'desc':'\n\ta\n'}))
loader.load_item()
#output still: {'desc': "\r\t\n some text \t\n"}
我想使用加载程序进行一些输出处理,但是在此示例中,空格没有被剥离
最佳答案
加载程序不会处理您未通过add_
方法添加的值。您可以将ItemLoader
子类化:
class ReloadableItemLoader(ItemLoader):
def __init__(self, *args, **kwargs):
super(ReloadableItemLoader, self).__init__(*args, **kwargs)
for key, value in self.item.iteritems():
self._add_value(key, value)