搜索抓取

首次发现与最后抓取:用两个时间字段核对 URL 的发现与保鲜

抓取日志不只看次数。把每个 URL 的首次出现时间与最近一次抓取时间单独算出来,能大致判断新页面的入口是否顺手、老页面是否仍在被访问。本文说明时区与爬虫口径的处理、四类页面状态的划分、容易误判的三种情况,以及每周一次的观察节奏。

搜索抓取

首次发现与最后抓取:用两个时间字段核对 URL 的发现与保鲜

看抓取日志时,很多人先数次数:这周蜘蛛来了几趟、哪些页面被访问最多。次数能说明热度,却不擅长回答两个更实际的问题——新页面多久后才第一次被看到,以及老页面最近一次被访问是什么时候。把这两个时间点单独算出来,站点的不少判断会清楚一些。

从日志里算出两个时间

不需要额外工具,只要日志里有完整的时间戳、URL 和爬虫标识,按 URL 分组后取最早时间和最晚时间即可。做这一步前有几个细节要先处理,否则数字会失真。

  • 时区统一:CDN 与源站日志的时区常常不同,先换算到同一时区再比较。
  • 爬虫识别:按 UA 与来源网段筛掉普通访客与其他来源的请求,只保留搜索抓取部分。
  • 去重口径:带参数的 URL 先归拢,否则同一页面会被拆成多条记录,时间点也跟着分裂。

首次出现时间:发现效率的粗略刻度

把日志中 URL 的首次出现时间,与它真正上线或内容更新的时间对照,可以大致看出发现通道是否顺手。差距小,说明入口明显、站点地图更新及时;差距大,通常能在几个地方找到原因:新页面没有内链指向、被放在很深的目录、只存在于列表页且列表本身很久没被抓、站点地图没有同步新增地址。

这里要留意一种情况:首次出现在日志里,并不等于蜘蛛第一次知道这个地址,只是第一次成功请求。中间可能有过被拦截、超时或跳转未落地的尝试。

最近一次抓取时间:保鲜度而不是权重

最近一次抓取时间反映的是近期关注程度,和页面更新频率、抓取预算、入口数量都有关系。判断时要先给页面分类:

  • 高频更新页:新闻、商品、活动页,间隔明显拉长时值得查原因。
  • 低频更新页:简介、帮助文档,间隔长属于正常现象。
  • 几乎不变的页面:条款、历史存档,长时间不再访问也未必是问题。

真正需要动手处理的是“更新频繁且重要,却长时间没有新记录”的那一类。排查顺序可以先从前面的发现通道看起,再核对接服务器返回是否稳定。

把两类页面放进四个格子

两个时间点放在一起看,页面大致落在四种状态里:

  • 新增且抓得勤:状态健康。
  • 新增但迟迟没被抓:检查内链入口与提交通道。
  • 较老但仍在抓:内容仍有变化,或页面本身被当作重要入口。
  • 较老且很久没抓:先确认内容是否确实没变,再决定要不要补内链或更新内容。

三个容易踩的误判

时间字段本身不会说话,解释它的口径才决定结论对不对。
  1. 把 CDN 命中当成蜘蛛没来。请求被缓存挡住时,源站可能没有记录,需要结合边缘日志一起看。
  2. 把首次出现直接当成“发现耗时”。跳转、限速、超时都会推迟成功请求的时间。
  3. 用最近抓取时间的长短给页面排权重。它只是一个观察指标,不宜反过来当作质量评分。

落地的观察节奏

小站每周导出一次,按上面两个字段做一张简表,记下新页面的首次出现等待时间、重点页面的最近访问日期。连续观察几周后,趋势比单次快照更有价值:新页面的发现是否变快,改版后重要页面是否仍被稳定访问,都能从这两列里读出来。发现异常时,再回到内链、站点地图与服务器响应去逐项核对,而不是直接批量改标题或换内容。