void_island 发表于 2020-9-2 10:28:17

scrapy中spider的返回值与管道

在scrapy工程中spider有代码:
class .... :
    ...
    def parse(self,response):
      <数据解析部分>
      items = []
      for i in list:
            item = XxxItem()
            item['a'] = a
            item['b'] = b
            items.append(item)
      return items

那么,管道接收到的数据是否是items
如果是,管道是怎么处理这个列表的
如果不是,这个列表由谁处理,管道接收到的又是什么

这是我从书上看到的演示代码,它的spider返回的是列表,但管道中并没有对列表进行遍历,而是直接在 process_item 中提取数据并并存储。
而在B站的视频中,讲师则是直接在spider里的for循环中使用yield提交item对象。

Stubborn 发表于 2020-9-3 15:25:05

使用yield提交给管道,return的是数据,数据将会交给引擎,而不是交给管道

scrapy的简单介绍
页: [1]
查看完整版本: scrapy中spider的返回值与管道