把零散经验变成方法,核心不是再收集更多技巧,而是把每次操作整理成“目标—假设—证据—结论”四段记录,让同一类问题能被重复验证。适用前提是:你已经用采集器处理过若干页面,遇到过失败或异常,但每次只记住某个按钮或某段代码,换一个页面又得重新试。验收信号是:下次遇到类似问题时,你能先写下可能原因,再用一次最小测试区分它们,而不是靠印象猜测。
经验通常是“上次这样点成功了”,方法则是“在什么条件下选哪种方式,失败时看什么信号”。例如列表页采集失败,经验可能是“换了个等待时间就好了”,方法则要求记录:页面是静态HTML还是由脚本填充、列表项是否有稳定属性、翻页是链接跳转还是接口请求。只有把条件写清楚,经验才能迁移到别的页面。
判断标准很简单:把记录交给一个熟悉基础操作但没做过这个页面的人,他能否按步骤复现并判断结果。如果不能,说明记录还停留在零散经验层面。
每次操作后花两分钟填写以下内容,比事后回忆更可靠:
短例子(假设场景):某列表页采集结果为空。记录假设为“内容由脚本加载”,证据是保存的HTML里没有目标文本。于是改用查看网络请求的方式确认数据来源,而不是继续调整选择器。这里的关键是每次只验证一个假设,避免同时改选择器、等待时间和翻页规则,否则无法知道哪一项起作用。
当同类失败出现三次以上,就把它提炼成检查项。常见的检查项包括:
每项检查都要写出“通过”和“不通过”分别意味着什么。例如检查初始HTML中没有目标文本,不直接等于页面无法采集,只说明需要进一步确认数据是否来自其他请求。可能原因和已经定位的原因要分开写,避免把一种解释当成唯一结论。
方法成型的标志不是记录变多,而是判断变快。可以设一个验收动作:隔一周后,拿一个结构相似但没做过的页面,只按检查项走一遍,记录在哪一步卡住。如果卡在“不知道看哪里”,说明证据项不够具体;如果卡在“知道要看但不会操作”,说明步骤缺少可执行细节。
另一个信号是能说出适用条件。例如某套选择器写法适合结构稳定的静态页面,不适合类名随机或内容异步加载的页面。能明确说出“什么情况下不适用”,比只会复述成功步骤更接近方法。
从你过去失败过的采集任务里挑一个,按上面的模板补写目标、假设、证据和结论,并标出当时没有记录的那一环。补完后用同类页面做一次最小验证,只改一个变量,看结论是否仍然成立。这样处理三到五个旧问题,零散经验就会自然收敛成一套可复用的判断顺序。