如果Scrapy退出并获取这些数据:
items[{'name': dog, cat, mouse, biff},
{'name': horse, mule, donkey, gerald},
{'name': lizard, snake, iguana, horace}]
我需要将'name'简化为第一项,例如:
items[{'name': dog},{'name': horse},{'name': lizard}]
这是使用装载机还是管道完成的?在爬网之后但在输出之前在Scrapy中操作数据的最佳方法是什么?
更新:感谢您的提示。通过将以下建议和此代码组合在一个管道中,我能够解决这个问题:
class filterImage(object):
def process_item(self, item, spider):
names = ''
if item['name']:
names = item['name'].split(' ')[0]
item['name'] = names
return item
else:
raise DropItem()
答案 0 :(得分:0)
在你的解析程序中只是一个简单的字符串抨击,不需要过于复杂化。
items = [{'name': 'dog, cat, mouse, biff'},
{'name': 'horse, mule, donkey, gerald'},
{'name': 'lizard, snake, iguana, horace'}]
l = []
for item in items:
l.append({'name': item['name'][0:item['name'].find(',')]})
print l
>>>[{'name': 'dog'}, {'name': 'horse'}, {'name': 'lizard'}]
将它放在item
中并将其收藏。
答案 1 :(得分:0)
管道中的这段代码可以解决问题:
class filterImage(object):
def process_item(self, item, spider):
names = ''
if item['name']:
names = item['name'].split(' ')[0]
item['name'] = names
return item
else:
raise DropItem()