为了账号安全,请及时绑定邮箱和手机立即绑定

在 Scrapy 中一次生成多个项目

在 Scrapy 中一次生成多个项目

梦里花落0921 2023-04-11 15:03:45
我怎样才能同时产生多个项目?我正在抓取一个 URL 列表,其中每个 URL 都有大约 10-20 个嵌套 URL。我从每个嵌套的 URL 中抓取 10 条我需要提供的信息。有没有办法同时产出 10 件物品?也许通过列表或我附加每个项目的东西然后在最后全部产生它们?我不完全确定该怎么做。有什么建议么?代码示例:class OdSpider(scrapy.Spider):    name = 'od'    allowed_domains = []    start_urls = ["url1, url2, . . . . ."]    def parse(self, response):        # scrape nested urls        yield scrapy.Request(nested_url, callback=self.parsenestedgame)    def parsenestedgame(self, response):        i1 = item1()        i2 = item2()        # 9 other items then adding info to items        yield item1(**i1)        yield item2(**i2)        # how can I yield all of these items at the same time?
查看完整描述

2 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

鉴于评论中提供的信息:

您可以拥有任意数量的项目,并在填充每个项目时以任何顺序生成它们。由于该yield语句不会终止代码执行,它们甚至可以像您在示例代码中显示的那样相互跟随。

它们都将到达 ItemPipelines,如果需要,您可以在那里区分并区别对待它们。

如果那不能回答您的问题,我可能还没有完全理解。请解释您想要实现的目标以及您尝试过但没有奏效的内容,以便我提供更多帮助。


查看完整回答
反对 回复 2023-04-11
?
弑天下

TA贡献1818条经验 获得超8个赞

我实际上想通了,我只是将所有项目附加到一个列表中,例如:

item_list.append(item1(**i1)). . . 。ETC

然后我迭代了以下项目:

for item in item_list:
    yield item


查看完整回答
反对 回复 2023-04-11
  • 2 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信