在输出之前,正确的方法是从Scrapy crawl中分离数据?

2024-04-30 06:19:39 发布

您现在位置:Python中文网/ 问答频道 /正文

如果斯帕蒂出去给我这些数据:

items[{'name': dog, cat, mouse, biff},
      {'name': horse, mule, donkey, gerald},
      {'name': lizard, snake, iguana, horace}]

我需要将“name”缩短为第一项,例如:

^{pr2}$

这是使用加载器还是管道完成的?在抓取后但在输出之前,在Scrapy中操作数据的最佳方法是什么?在

更新:谢谢你的提示。通过将以下建议与此代码结合在一起,我能够解决此问题:

类filterImage(对象):

def process_item(self, item, spider):

        names = ''
        if item['name']:
            names = item['name'].split(' ')[0]
            item['name'] = names
            return item
        else:
            raise DropItem()

Tags: 数据namenamesitemsitemcatdogdonkey
2条回答

在你的解析程序中只是一个简单的字符串攻击,不需要把事情复杂化。在

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中,然后交出它。在

管道中的代码实现了以下目的:

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

相关问题 更多 >