scrapy过滤器 1. 过滤器 当我们在爬取网页的时候可能会遇到一个调转连接会在不同页面出现,这个时候如果我们的爬虫程序不能识别出 该链接是已经爬取过的话,就会造成一种重复不必要的爬取。所以我们要对我们即将要爬取的网页进行过滤,把重 复的网页链接过滤掉。 2. 指纹过滤器 去重处理可以避免将重复性的数据保存到数据库中以造成大量的冗余性数据。不要在获得爬虫的结果后进行内容过 滤,这样做只不过是避免后端数据库出现重复数据。 去重处理对于一次性爬取是有效的,但对于增量式爬网则恰恰相反。对于持续性长的增量式爬网,应该进行"前置过 滤",这样可以有效地减少爬虫出动的次数。在发出请求之前检查询爬虫是否曾爬取过该URL,如果已爬取过,则让爬 虫直接跳过该请求以避免重复出动爬虫。 Scrapy 提供了一个很好的请求指纹过滤器 (Request Fingerprint duplicates filter) scrapy.dupefilters.ReppupeFilter ,当它被启用后,会自动记录所有成功返回响应的请求的URL,并将其以文件 (requests.seen) 方式保存在项目目录中。请求指纹过滤器的原理是为每个URL生成一个指纹并记录下来,一旦 当前请求的URL在指纹库中有记录,就自动跳过该请求。 默认情况下这个过滤器是自动启用的,当然也可以根据自身的需求编写自定义的过滤器。