既然爬虫失效了,我就用视觉模型实现了“全模拟真人”采集。今天搞定了那个该死的“滑动拼图”验证码,不是用传统的坐标计算,而是让视觉模型去“看”缺口位置,再让 Playwright 去模拟拖动。API 频率限制?动态 DOM 树混淆?在“看”和“模拟”面前,这些花招都成了摆设。
去年 ChatGPT 出来那阵子,我慌得不行,感觉自己那套爬虫、反爬、多线程调优的手艺要废了。但现在看,AI 不是来取代你的,是来给你递更趁手工具的。以前遇到这种验证码,得去逆向 JS,找加密参数,分析轨迹算法,一耗就是两三天。现在呢?截图,扔给视觉模型,让它告诉我缺口像素偏移量,再用 Playwright 模拟带随机加速度的拖动曲线。整个过程,代码里没有一行是去“理解”对方的前端逻辑,我只是在模拟一个视力正常、手有点抖的人类。
这思路的转变是血泪换来的。2018年那会儿,我还能靠写定制化的 XPath 和正则,配合 IP 池和请求头随机化,横扫大部分网站。那时候对“技术”的理解,就是谁能更快破解对方的防御。但后来,反爬手段进化到动态渲染、行为指纹、Canvas 指纹,甚至鼠标轨迹监测。你写的爬虫越“聪明”,越像机器,就越容易被识别。有段时间我病态地收集各种 User-Agent 和浏览器指纹库,试图把自己伪装成“真人流量”,但本质上还是在和规则对抗,心力交瘁。
现在的做法,是彻底放弃“对抗”。我不去解析你的 DOM 树,也不关心你的接口参数怎么加密。我用 Playwright 启动一个真正的、无头模式的浏览器,加载页面,等待元素。遇到验证码,不是去调用破解接口,而是让模型“看见”它,然后做出“人类反应”。滚动页面时,加入随机停留和轻微的回滚动作。点击按钮前,鼠标先在目标上方悬停半秒。这些细节,以前要靠复杂脚本生成事件,现在只需要在 Playwright 的 action 链条里插入随机延迟和基于视觉反馈的决策。
技术细节上,关键是把视觉模型“嵌入”到自动化流程里。我用的是 n8n 做流程编排,一个节点执行 Playwright 截图,下一个节点调用本地部署的视觉识别 API(比如用 YOLO 或 SAM 微调的模型),识别出目标元素或验证码缺口,把坐标返回,再下一个节点执行精确操作。整个过程,爬虫变成了一个“基于视觉感知的自动化智能体”。它甚至能处理那种“点选图中所有的公交车”这种验证码,虽然成功率还不是百分百,但已经打开了新世界的大门。
最讽刺的是,这套方法的核心技术栈——Playwright、计算机视觉模型、流程自动化——在五年前都是分散的、高门槛的领域。现在被 AI 和工具生态给搓到了一起。我花了三个晚上就搭出了原型。这在“野蛮生长”时期是不可想象的,那时候光是一个动态渲染页面的无头浏览器方案,就能卡我一周。
在 AI 面前,没有攻不破的围墙。这句话现在说出来,少了点年少时的狂妄,多了点无奈后的通透。墙一直在升高,但这次,我们手里有了梯子,甚至有了飞行器。不再是从前那种硬碰硬的消耗战了。只是不知道,这梯子能用多久,下一个需要我重新焦虑、从头学起的“核爆”级工具,又会在哪一天突然降临。














