gpt4 book ai didi

python - 将请求传递给不同的蜘蛛

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:52 26 4
gpt4 key购买 nike

我正在开发一个使用 2 个不同蜘蛛的网络爬虫(使用 scrapy):

  1. 非常通用的蜘蛛,可以使用一堆启发式方法来抓取(几乎)任何网站来提取数据。
  2. 能够抓取特定网站 A 的专用蜘蛛程序,由于网站的特殊结构(必须抓取该网站),因此通用蜘蛛程序无法抓取该网站 A。

到目前为止,一切都运行良好,但网站 A 包含指向其他“普通”网站的链接,这些网站也应该被抓取(使用蜘蛛 1)。 是否有一种 Scrappy 方式将请求传递给蜘蛛 1?

我想到的解决方案:

  1. 将所有功能移至 Spider 1。但这可能会变得非常困惑,Spider 1 代码已经非常长且复杂,如果可能的话,我希望将此功能分开。
  2. 按照 Pass scraped URL's from one spider to another 中的建议保存数据库链接

还有更好的办法吗?

最佳答案

我遇到过这样的情况,一个 spy 程序在第一个页面中检索 URL 地址,然后从那里调用第二个页面进行操作。
我不知道你的控制流是什么,但根据它,我只会在废弃新网址时或废弃所有可能的网址后及时调用第一个 spy 程序。
您是否遇到过 n°2 可以检索同一网站的 URL 的情况?在这种情况下,我将存储所有 url,将它们排序为任一蜘蛛的字典中的列表,然后再次滚动,直到列表中没有新元素可供探索。在我看来,这使得它变得更好,因为它更灵活。

及时调用可能没问题,但根据您的流程,它可能会降低性能,因为对相同函数的多次调用可能会浪费大量初始化时间。

您可能还希望使分析函数独立于蜘蛛,以便使它们在您认为合适的情况下可供两者使用。如果您的代码非常长且复杂,它可能有助于使其变得更轻、更清晰。我知道这样做并不总是可以避免的,但这可能值得一试,并且您最终可能会在代码级别变得更加高效。

关于python - 将请求传递给不同的蜘蛛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45585281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com