两个spider结构大致如下,item是同一个类:
import spider02
class spider01(scrapy.spider):
#.....
def parse(self, response):
s2 = spider()
#......
yield item
yield Request(url, meta{‘item’:item}, callback=s2.parse)
#......
yield item
————————————————————
class spider02(scrapy.spider):
#......
def parse(self, response):
#......
item = response.meta['item]
#......
item['new'] = xxxx
yield item
在pipeline中:
- 使用
if spider.name:
判断,进行分别操作时不报错,但写入spider02的item只是spider01传过来的item,新获得的item['new']没有写入。
- 使用
if item['new']:
来判断时,可以写入spider02完整的item
所以是不是因为scrapy 启动的是spider01,所以被spider01调用的其他类中返回的item也被归到了spider01身上?
我想问:一个class spider里面的def之间怎么调用