scrapy 中已经关注的链接会发生什么?

What happens with already followed links in scrapy?

我有一个蜘蛛,比方说,它使用 'response.follow' 方法跟踪网站中的所有 link,并且它以递归方式执行此操作。它可以多次找到相同的 link,但我知道默认情况下已经跟随的 link 在最新版本的 scrapy 中不会再次跟随。这是真的?我找不到很多关于这个的信息。如果这是真的,它是否会在所有可能的 link 都用尽并因此重复每个已产生的请求时停止抓取?

Scrapy 有 built-in 重复过滤,默认开启。也就是说,如果 Scrapy 已经抓取了一个站点并解析了响应,即使你用 URL 产生另一个请求,scrapy 也不会处理它。但是您可以设置 dont_filter=True 并禁用它。

来自documentation

dont_filter (bool) – indicates that this request should not be filtered by the scheduler. This is used when you want to perform an identical request multiple times, to ignore the duplicates filter. Use it with care, or you will get into crawling loops. Default to False.

所以,是的。当所有可能的 link 都用尽时,它将停止爬行,并且会过滤掉重复的 links