我怎样才能同时产生多个项目?我正在抓取一个 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,如果需要,您可以在那里区分并区别对待它们。
如果那不能回答您的问题,我可能还没有完全理解。请解释您想要实现的目标以及您尝试过但没有奏效的内容,以便我提供更多帮助。
弑天下
TA贡献1818条经验 获得超8个赞
我实际上想通了,我只是将所有项目附加到一个列表中,例如:
item_list.append(item1(**i1))
. . . 。ETC
然后我迭代了以下项目:
for item in item_list: yield item
添加回答
举报
0/150
提交
取消