芒格骂比特币这事,我一点都不意外。这老头和巴菲特一样,只投自己能看懂的东西,看不懂就骂,这是价值投资者的肌肉记忆。但2021年的世界已经不是他们能看懂的了,就像我现在看不懂为什么一个爬虫脚本跑着跑着就死,但我的系统得自己活过来。
昨天凌晨三点,不是抒情,是服务器真的报警了。一个负责抓取某电商平台价格数据的Python脚本,因为对方反爬升级,DOM树结构全变了,正则匹配集体失效。放在2018年,我肯定得骂娘然后手动重写。但现在,我的“自愈脚本系统”第一个节点挂了,触发逻辑反馈链:先尝试三种备用解析方案(XPath、CSS Selector、以及用requests-html渲染),如果全失败,就自动切换到第二个数据源节点——一个用Playwright模拟登录的备用脚本。如果备用节点也响应超时,系统会给我发一条Telegram告警,同时把任务队列里所有同类请求标记为“低优先级”,防止堵塞其他流程。这一切发生在120秒内,没有人工干预。
这套东西的骨架是n8n,血肉是我用Python写的“节点健康度探针”。每个数据抓取或处理节点,都配了一个探针脚本,每五分钟跑一次,检查三项:1. 是否能连通目标地址;2. 返回的数据结构是否与预期模板匹配(用JSON Schema验证);3. 单次任务耗时是否超过阈值。任何一项异常,探针就会在n8n里把这个节点标记为“疑似故障”,并触发一个备用工作流。
真正的核心是“逻辑反馈”。不是简单的A挂了切B,而是有一套决策树。比如,电商数据源挂了,系统会先判断:是网络问题(尝试重试三次)?还是反爬问题(切换User-Agent和代理IP池)?还是页面改版(启动备用解析方案)?每一步的失败,都会作为参数输入到下一个决策分支。这听起来简单,但写判断逻辑写到吐,各种边缘情况,比如对方返回一个“系统繁忙”的JSON,但HTTP状态码却是200。
为什么非得搞这么复杂?因为2021年,我砍掉了团队,回归一个人。时间就是我唯一的生产资料。我不能再像2019年那样,半夜接到小弟电话说“哥,脚本又挂了”,然后爬起来边骂边修。我的身体经不起那种消耗了,去年体检一堆箭头朝上。我必须让系统像我的身体一样,有冗余,有代偿能力。一个节点挂了,其他节点能顶上;就像我如果今天颈椎废了,至少腿还能动,还能去健身房踩椭圆机。
芒格说比特币是老鼠药,因为他只相信生产性资产。但我觉得,在数字世界,能自我修复、自动寻找最优路径的“系统”,就是最硬的生产性资产。它不产生实物,但它产生最宝贵的东西:稳定的、可预测的输出,和我的睡眠时间。比特币是不是老鼠药我不知道,但一个动不动就崩、需要我24小时当保姆的旧系统,肯定是我的毒药。
我的自愈脚本,现在每天处理大概两万个请求,故障自动切换成功率在95%以上。剩下的5%,是需要我人工介入的结构性变更,比如对方整个API都换了。但这已经比2018年那种“一挂全挂”的裸奔状态强太多了。我不再焦虑于某个具体技术会不会过时(比如Scrapy会不会被云服务替代),我焦虑的是,我的这套“自愈逻辑”的抽象程度够不够高,能不能快速移植到下一个新场景里。
混乱是永恒的,平台会改版,API会废弃,协议会升级。把自己练成一个哪里出问题就扑向哪里的救火队长,是条死路。真正的核心竞争力,是构建一个能感知混乱、适应混乱、甚至在混乱中寻找新机会的有机系统。它不必完美,但它必须能自己止血,自己找路,在我睡觉的时候,它还在那里自我迭代。这才是我理解的,数字时代的“价值投资”。














