加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 11:24:30 所属栏目:Python 来源:网络整理
导读:我是scrapy的新手.在items.py中,我声明了2个名为ItemClass1和ItemClass2的ItemClass.一个蜘蛛方法parseUrl获取html和scrape数据并放入各个Item Classes的列表中. e.g:C1Items = []C1Item = ItemClass1()#scrape dataC1Items.append(C1Item)...C2Items = []C2
我是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)
...

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

return C1Items #will pass ItemClass1 data to pipeline
return C2Items #will pass ItemClass2 data to pipeline

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

解决方法

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

C1Item = ItemClass1()
#scrape data
yield C1Item
...
C2Item = ItemClass2()
#scrape data
yield C2Item

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读