先对照“同一时间点的原始响应与规则命中记录”,而不是先争论谁的经验更可靠。新人常把“页面没出现预期内容”直接归因于规则写错,资深人员则容易先怀疑目标站点结构或反爬策略变化。两种解释都可能成立,区分它们的关键证据是:在相同任务、相同时间下,采集器实际拿到的是完整页面、残缺页面,还是验证页。若原始响应本身就缺少目标字段,问题在数据源层;若原始响应完整而规则未命中,问题才在规则层。
诊断分歧时,最忌讳两个人各自跑一次、各自看结果。应先把变量压到最少:同一个网址、同一份任务配置、同一时间段、同一网络出口,分别由新人和资深人员各执行一次,并保留三项记录——请求返回的原始内容、规则匹配到的字段数量、日志中的状态码或跳转信息。
这里有一个假设例子:新人执行后目标标题为空,资深人员执行后能取到标题。若两次的原始内容长度差异明显,且新人那次返回的是验证或跳转页面,那么更合理的解释是访问环境或触发策略不同,而不是规则写法有误。此时下一步不是改规则,而是先让两次请求的原始响应可比。反过来,若两次原始内容一致、都包含目标标题,但只有新人那次字段为空,才应进入规则层排查。
证据对照完之后,通常要做一个取舍,而不是无限调试。
三种取舍并非都要尝试。若证据显示问题只在规则层,直接改写即可;若证据显示来源已不可用,硬改规则只会延长无效调试。
新人倾向认为“我写的规则一定有问题”,资深人员倾向认为“肯定是网站又改了”。要打破这种各说各话,可以按下面的顺序看证据:
需要提醒的是,请求量下降、抓取量归零或某个字段突然为空,都不能单独证明某一种解释正确。它们也可能是目标站点临时维护、任务被暂停、网络抖动或配置被覆盖。把这些现象当成唯一证据,容易让诊断走向错误方向。
诊断的价值在于决定下一步做什么。若证据指向来源层,下一步应是确认来源是否仍可用、是否需要更换入口或调整访问方式,而不是继续打磨提取表达式。若证据指向规则层,下一步应是在可比响应上重新定位字段,并用同一任务验证命中是否恢复。若证据不足以判断,下一步应是补一组对照记录,而不是凭直觉改配置。
对新人来说,可核对的证据比“感觉不对”更有说服力;对资深人员来说,先看原始响应比先下结论更省时间。两者对照的落点不是谁对谁错,而是让下一步动作有依据。