先给结论:免费版缺字段时,不要用“换个入口再查一次”来补,而要把缺失字段拆成三类——可间接推导的、必须外部佐证的、只能标注为未知的。前两类可以继续用,第三类必须留白,否则规模化后必然出现无法解释的例外。
假设你负责整理一批公开页面标题,免费版只返回标题和链接,没有返回发布时间。小样本十页里,你发现标题里带“2024”字样的页面,发布时间基本都在当年,于是决定用标题年份反推发布时间。这个做法在十页里成立,但放到一千页就会遇到例外:标题写“2024展望”的页面可能发布于2023年底,标题不含年份的页面也可能有明确发布时间。
这里的决策点不是“要不要继续用”,而是“哪部分可以继续用”。标题年份只能作为弱证据,用于排序或分组,不能作为最终字段值写入交付表。可核对的做法是:把标题年份单独放一列,标注“推断值”,再留一列“核实状态”,默认填“未核实”。
比如从链接路径里的目录名推断栏目,从标题前缀推断页面类型。这类字段的补法是用已有字段 + 规则生成新列,但必须同时记录规则来源。动作上,把规则写成一行可复查的说明,例如“栏目=链接中第一个路径段”。结果如何影响下一步:如果抽样二十条里有两条不符合规则,就说明该规则只能用于分组,不能用于最终字段。
发布时间、作者、机构名称通常属于这一类。免费版不给,就去页面本身找可见线索,比如正文开头的日期、页脚的版权年份。注意版权年份不等于发布时间,它只能作为参考。可核对证据的要求是:同一字段至少有两条独立线索指向同一结果,且线索位置可被他人复核。动作上,为每条记录保留线索位置(如“正文首段”“页脚第二行”),结果影响下一步:只有两条线索一致时才把该字段标为“已核实”,否则仍标“待核实”。
如果页面本身没有可见日期,免费版也不返回,那就没有可核对证据。此时不要用抓取时间代替发布时间,也不要用相邻页面的日期去填。正确动作是把该字段留空,并在备注里写“免费版未返回,页面无可见线索”。结果影响下一步:如果未知比例在小样本里超过你设定的容忍线,比如十页里有四页未知,就说明这批数据不适合按该字段做筛选,应改用其他字段分组。
有时你发现某字段在免费版里时有时无,容易误判为工具限制。请求量下降、返回条数变少、某字段突然为空,都可能有其他解释:页面本身没有该字段、查询词命中了不同模板、返回结果被截断。不能只凭一次空值就断定免费版永久缺少该字段。
可核对的动作是:固定同一批查询对象,连续记录三次返回结果,比较字段出现的位置和频率。如果三次都缺,且换成页面内可见线索也找不到,才按“缺失字段”处理。结果影响下一步:确认缺失后,才进入上面的三类拆分;否则先排查查询对象是否写错。
小样本成立不代表可照搬。建议在扩量前先跑一次例外清单,把不符合规则的对象单独列出,并写清例外原因。清单至少包含三列:对象标识、预期规则、实际偏差。动作上,随机抽二十到三十条,逐条对照。结果影响下一步:如果例外集中在某一类页面模板,就为这类模板单独建规则;如果例外分散且无规律,就放弃用该规则补字段,改为留白或换字段。
这套做法的核心不是把缺失字段补全,而是让每个补上的值都能被他人按同样步骤复核。做不到复核的值,宁可标为未知,也不要写进最终结果。