先在批量之前找出那个被忽略的条件。小样本有效、批量无效,通常不是操作本身变了,而是样本外多出了某个变量:可能是页面状态、模板差异、发布时间、内容类型,或者你抽样时无意中挑到了更整齐的对象。要复现,先把批量操作拆回可对照的两组,再决定是保留原方案、改写规则还是退出批量。
两者表现很像,但处理方向不同。条件遗漏指批量对象里存在小样本没有的情况,比如某些页面已有旧内容、某些文章缺少同一类字段、某些模板输出结构不同。样本偏差指你最初挑的几篇本来就更容易处理,比如它们更长、更完整、更接近目标形态。
区分方法很直接:从批量失败的对象里随机抽几篇,再从成功的小样本里随机抽几篇,逐项比对页面状态、模板、字段完整度、发布时间、内容长度。如果失败组普遍缺某个字段或模板不同,偏向条件遗漏;如果两组在这些项上接近,只是小样本恰好选得整齐,偏向样本偏差。
这一步的动作是列对照表,结果决定下一步:条件遗漏要补规则,样本偏差要重做抽样,而不是继续扩大批量。
保留适用于批量失败只集中在少数对象,且这些对象能被明确识别。比如失败页都来自同一个模板,或都缺少某个字段。此时保留原操作,只对识别出的子集单独处理,前提是你已经能稳定圈出这个子集。
改写适用于失败原因在规则本身。比如原操作假设所有文章都有同一类结构,但实际内容类型不同。改写不是把规则改复杂,而是把触发条件写清楚:满足什么条件才执行,不满足就跳过。前提是你愿意接受一部分对象不处理。
退出适用于批量对象差异过大,圈不出稳定子集,或者改写后规则已经复杂到无法交接。此时继续批量的维护成本高于收益,退出并回到小批量手动处理更合理。
三种取舍没有通用优先级,取决于你能否稳定描述失败对象的共同特征。描述不出来,就不该继续批量。
假设你要给一批博客文章统一补一段摘要。你先在五篇文章上试,全部正常。批量到三十篇时,一部分文章摘要位置错乱。这里不能直接断定操作失效。
复现步骤可以这样设计:把三十篇按模板分成两组,各抽三篇,只对其中一组执行同一操作,另一组不动。比较执行前后的页面输出,并记录每篇的模板名和字段情况。假设结果是错乱只出现在其中一种模板上,那么条件就找到了,下一步是给该模板单独写规则或跳过它,而不是回退全部改动。
这个例子里的数字只是说明比较方法,不代表任何实际效果。比较时还要注意,前后两次观察如果间隔了需求变化或采集差异,结果不能直接归因于操作本身。
为了让结论站得住,批量前至少固定三件事:同一批对象、同一操作版本、同一观察口径。观察口径指你看的是页面输出、字段值还是别的可核对结果,前后要一致。
如果某项统计突然归零,不要立刻认为操作正确或错误。归零也可能来自采集中断、字段改名、页面未更新等合理解释。先确认这些可能,再决定是否继续。
做完对照后,问三个问题:失败对象能否被一条规则圈出?圈出后剩余对象是否仍值得批量?改写后的规则能否被别人看懂并执行?三个都能回答,就按对应取舍继续;有一个答不上来,就缩小范围或退出批量。
复现的目的不是证明操作对错,而是找到那个让结果分叉的条件。找到它,你才知道该保留、改写还是退出,也才知道下一步该验证什么。