scrapy单个spider将多个项目类传递给管道

lea*_*yUI 3 scrapy

我是scrapy的新手.在items.py中,我声明了2个名为ItemClass1和ItemClass2的ItemClass.一个蜘蛛方法parseUrl获取html和scrape数据并放入各个Item Classes的列表中.

e.g:
C1Items = []
C1Item = ItemClass1()
#scrape data
C1Items.append(C1Item)
...
C2Items = []
C2Item = ItemClass2()
#scrape data
C2Items.append(C2Item)
...
Run Code Online (Sandbox Code Playgroud)

最后:C1Items和C2Items包含所需的数据.

return C1Items #will pass ItemClass1 data to pipeline
return C2Items #will pass ItemClass2 data to pipeline
Run Code Online (Sandbox Code Playgroud)

你能否告诉我们将C1Items,C2Items传递给管道的最佳方法是什么?

war*_*iuc 5

将不同类的所有项组合成一个列表并返回该列表,或使用yield语句:

C1Item = ItemClass1()
#scrape data
yield C1Item
...
C2Item = ItemClass2()
#scrape data
yield C2Item
Run Code Online (Sandbox Code Playgroud)