先判断限流发生在哪一层:是排名优化软件自身对脚本调用设了频率上限,还是数据源或中间接口在拒绝请求。两者的保护动作不同。前者通常只需放慢调用并补齐断点;后者则应停止继续拉取,把已有结果落盘、标注覆盖范围,再决定是否换路径。核心原则是:限流期间不要用重试去覆盖旧数据,宁可保留一份不完整但可追溯的结果。
限流提示本身信息有限,但可以靠一组可核对的证据区分原因:
这个区分直接决定动作。速率规则下,放慢并续跑是合理的;上游压力下,继续试探只会扩大失败面,已有结果更该先固化。注意,请求量突然归零或抓取量骤降,并不能单独证明限流已解除,也可能是任务被静默丢弃、凭据过期或上游改了返回结构,需要另找证据。
当拒绝呈现稳定节奏,且工具支持按关键词或分页续跑,选择“保结果、慢补全”。具体动作:
这一步的结果会影响下一步:如果补跑后缺失量明显缩小且没有新失败,说明判断成立,可以继续;如果补跑仍在同一位置失败,说明不是单纯速率问题,应转入条件二处理。假设某次任务计划拉取五百个关键词,在第三百个被拒,按上述方式落盘后续跑,补到的记录与旧记录合并时,必须保留抓取时间,否则新旧数据混在一起,后续比较会失真。
当失败随机、部分字段缺失,或已有结果本身出现反常(例如同一关键词排名在相邻两次抓取间大幅跳动),应选择“冻结已有结果、暂停脚本”。
这里的例外是:如果业务只要求趋势方向而非精确值,且缺失集中在非核心关键词,可以在标注覆盖范围后先行使用,但必须写明未覆盖部分和冻结时间。反之,如果缺失落在核心词或对比基准上,任何先行使用都会污染结论。
一是用重试覆盖旧结果。很多脚本在失败后重新请求并直接写回同一文件,限流期间这会把已经正确的记录替换成空值或错误值,损失不可逆。正确做法是追加写入并保留时间戳,让新旧记录可区分。
二是把“请求恢复”等同于“可以继续原计划”。限流解除只说明通道暂时可用,不代表之前缺失的数据已经补齐。应先核对断点清单,确认覆盖范围,再决定是否扩大任务量。对具体工具的重试策略、配额规则和日志字段,不同产品差异较大,需以实际文档和当前版本为准,不能凭通用经验套用。
遇到限流时按此顺序处理:先停,再落盘,再定位原因,最后才决定续跑或换路径。停和落盘是保护已有结果的底线动作;定位原因决定后续是慢补全还是冻结换路。只要已有结果带着时间戳和覆盖范围被完整保存,即使本次任务未完成,也不会影响下一次判断的起点。