规范 URL 解算器 是一种特殊的 middleware 对象,用来识别网页的规范 URL,并根据这个修改 request 或者 response 的元数据。通常规范 URL 解算器是在调用后端方法之前最后一个执行的 middleware。

此组件的主要目的是防止元数据记录重复和混淆与其相关联的抓取器行为。原因是:

  • 不同的重定向链将指向相同的文档。
  • 同一份文件可以通过多个不同的URL访问。

精心设计的系统具有自己的稳定算法,为每个文档选择正确的 URL。另见 Canonical link element

规范 URL 解算器在Frontera Manager初始化期间使用 CANONICAL_SOLVER 设置中的类来实例化。

内置规范 URL 解算器参考

基本的

用作默认值。

class frontera.contrib.canonicalsolvers.basic.BasicCanonicalSolver

Implements a simple CanonicalSolver taking always first URL from redirect chain, if there were redirects. It allows easily to avoid leaking of requests in Frontera (e.g. when request issued by get_next_requests() never matched in page_crawled()) at the price of duplicating records in Frontera for pages having more than one URL or complex redirects chains.