在另一个Spider上解析页面后调用另一个Spider

问题描述 投票:0回答:1

在某种程度上已解决herehere

但是我想在这里提出任何建议之前先问一下这里,因为我真的不喜欢任何一种方法。

所以基本上,我正在尝试废弃Steam游戏。如您所知,Steam有一个链接,您可以在其中访问游戏的全部评论,例如:

https://steamcommunity.com/app/730/reviews/?browsefilter=toprated&snr=1_5_100010_

您可以忽略snr并在那里浏览过滤器查询参数。

无论如何,我已经创建了一个Spider,它将在此处抓取游戏列表并运行良好:

https://store.steampowered.com/search/?sort_by=Released_DESC

但是现在,对于每个游戏,我都希望检索所有评论。

[最初,我创建了一个新的Spider,用于处理页面中的无限滚动,该页面具有游戏的全部评论,但是显然Spider需要这些评论所在的URL。

所以基本上,我现在要做的是废弃所有游戏页面,并将带有每个游戏评论的URL存储在txt文件中,然后将其作为参数传递给第二个蜘蛛。但是我不喜欢这样,因为它迫使我执行一个两步过程,此外,我需要以某种方式将第二个蜘蛛的结果映射到第一个蜘蛛的结果(此评论属于该游戏,等等)] >

所以我的问题是:

  • 最好将抓取游戏页面的结果(以及带有所有评论的URL)发送给第二蜘蛛,或者至少发送给URL,然后使用第二蜘蛛将每个游戏的所有评论发送给第二蜘蛛。就性能而言,这将是O(N * M),即每游戏N个游戏数和M个评论数,也许正因为如此,拥有2个蜘蛛是值得的...想法吗?

    • 我真的可以从其他蜘蛛调用蜘蛛吗?从我在Scrapy文档中阅读的内容来看,它看起来并不像。我可能可以将所有东西移到一只蜘蛛上,但是看起来很糟糕,并且不遵循单一责任原则...

这里和这里在某种程度上已经解决了这个问题,但是我想在这里提出任何建议之前先问一下这里,因为我真的不喜欢任何一种方法。所以基本上,我正在尝试...

scrapy
1个回答
0
投票

您为什么不使用其他解析过程?

© www.soinside.com 2019 - 2024. All rights reserved.