日志里同一段地址一天请求 1800 个文章页,UA 写的是正常 Chrome,没有资源请求,间隔均匀,三天后对方站上出现整站镜像。乍看像缓存或者权限的锅,追下去往往不是。
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head
# 统计单地址的文章页请求占比
追下去是这么回事:采集方伪装 UA 绕过基于 UA 的拦截,请求间隔控制得很稳,不会触发频率阈值。站点没有做行为特征识别,也没有正文指纹。
「爬虫抓全文」这类改动最怕改一半,回滚脚本先准备好,再动生产。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。报错里带路径的,先去看那个路径在不在、权限对不对。
具体做法是,按访问路径分布和资源请求比例识别,不只信 UA;对无来源页、无静态资源的连续文章请求加验证;正文插入不可见的指纹标记,便于追溯来源;确认后按地址段限速并保留日志证据。
验收就看一点,可疑地址的请求返回 429,日志里能看到限速记录,镜像站更新停止。
