比如说,我有一个蜘蛛,它使用“response.follow”方法跟踪网站中的所有链接,而且它是递归的。它可以多次找到同一个链接,但我知道在默认情况下,已经被跟踪的链接在最后一个版本的scrapy中不会被再次跟踪。这是真的吗?我找不到很多关于这方面的信息。如果这是真的,当所有可能链接都用完了,因此每个产生的请求都被重复时,它会停止爬行吗?
qeeaahzv1#
Scrapy有内置的重复过滤功能,默认情况下是打开的。也就是说,如果Scrapy已经抓取了一个网站并解析了响应,即使你产生了另一个带有该URL的请求,Scrapy也不会处理它。但是你可以设置dont_filter=True并禁用它。从documentationdont_filter (bool)-表示排程器不应筛选此要求。当您想要多次执行相同的要求时,可以使用此选项来忽略重复的筛选条件。请小心使用,否则会陷入探索循环。预设为False。所以,是的。当所有可能的链接都用完时,它会停止爬行,并过滤掉重复的链接
dont_filter=True
dont_filter (bool)
1条答案
按热度按时间qeeaahzv1#
Scrapy有内置的重复过滤功能,默认情况下是打开的。也就是说,如果Scrapy已经抓取了一个网站并解析了响应,即使你产生了另一个带有该URL的请求,Scrapy也不会处理它。但是你可以设置
dont_filter=True
并禁用它。从documentation
dont_filter (bool)
-表示排程器不应筛选此要求。当您想要多次执行相同的要求时,可以使用此选项来忽略重复的筛选条件。请小心使用,否则会陷入探索循环。预设为False。所以,是的。当所有可能的链接都用完时,它会停止爬行,并过滤掉重复的链接