这标题就是我上周的真实写照。疫情又他妈反复了,出省出差彻底泡汤,客户会议全改线上。我坐在书房里,看着满屏的 Zoom 窗口,突然觉得特别没劲——我他妈一个搞技术的,难道就被困在这几个像素点里了?
不行,得找点事干。既然肉身出不去,就让代码出去看看。我决定写个爬虫,去抓那些国外技术论坛、开源项目库里的 AI 实战案例。不是那种“Hello World”级别的,我要的是那种有完整代码、有数据、有踩坑记录的硬核项目。目标很明确:用爬虫给我自己建一个全球 AI 实战案例库。
一开始想得太简单了。直接用 requests 库配 BeautifulSoup 去爬几个知名技术博客。结果撞得头破血流。反爬机制比我想的狠多了,IP 被封得飞快,动态加载的内容用传统解析根本抓不到。DOM 树结构复杂得跟迷宫一样,XPath 写了几十行还定位不准一个关键 div。更恶心的是那些用 JavaScript 渲染的页面,爬回来的 HTML 里就一行 `
`,屁都没有。
逼得我上 selenium。这玩意儿能模拟浏览器行为,但慢得像蜗牛,资源占用还高。开三个线程并行爬,我那个破笔记本的风扇就开始嚎叫,感觉下一秒就要起飞。而且 selenium 的定位也不稳定,页面加载稍微慢一点,元素没出来,代码就报错,还得加一堆恶心的 time.sleep()。那几天,我大部分时间不是在写爬虫逻辑,而是在跟各种超时异常、元素未找到异常、网络波动异常搏斗。整个人烦躁得想砸键盘。
后来换了个思路,不用 selenium 硬刚了。研究了一下那些网站的 API 调用。用 Chrome 开发者工具抓包,看 XHR 请求,找数据接口。这招对一些结构清晰的网站有用,但很多站点的 API 有频率限制,还有复杂的 token 验证。我又得去模拟登录,处理 cookie,管理会话状态。搞到后面,爬虫代码里三分之二是处理 HTTP 请求头、参数加密和状态维持的脏活累活。
但真正让我觉得有点意思的,是处理抓回来的那些案例文本。一堆英文的、夹杂着代码和术语的项目描述。我想,能不能让 AI 帮我先初步筛选和分类?那时候 ChatGPT 还没出来,但像 BERT 这类预训练模型已经可以用了。我找了个开源的句子嵌入模型,想试试看语义相似度。
想法很美:把案例描述文本向量化,然后跟我预设的几个关键词(比如“computer vision”、“NLP”、“reinforcement learning”、“automation”)计算余弦相似度,自动打标签。结果第一版跑下来,标签打得一塌糊涂。一个讲用 CNN 识别瑕疵的工业检测案例,因为描述里提到了“自动报告生成”,居然被模型打上了“NLP”和“automation”的标签,而“computer vision”的相似度得分反而很低。
我仔细看了模型输出,发现问题出在上下文。BERT 这类模型虽然能理解语义,但我喂给它的只是孤零零的项目描述片段,没有完整的项目背景。模型看到“自动生成报告”,就关联到了文本处理,而忽略了前面大段的关于图像卷积层的描述。这让我意识到,当时的 AI,尤其是这种通用模型,对专业领域的、结构复杂的文本理解,还是太“糙”了。它需要更精准的“调教”。
后来我改进了方案。我不再直接用整个描述去匹配关键词,而是先让模型做一次粗粒度的分类(用 few-shot 提示的方式,那时候还没流行这个词,但做法类似),分出“视觉”、“语言”、“决策”等大类。然后再在大类内部,用规则(比如关键词匹配)去细分应用场景,比如“质检”、“对话机器人”、“流程自动化”。这么一套组合拳下来,分类准确率才勉强能看。
整个过程,挫败感是常态。爬虫技术本身没啥突破,都是老掉牙的多线程、IP 代理池、请求伪装。AI 辅助分类更是笨拙,远没有现在的大模型这么“智能”和“听话”。它更像一个不太灵光、需要你反复明确指令的实习生,而不是一个能独当一面的助手。
但这次折腾也不是没收获。最大的惊喜不是技术上的,而是认知上的。我亲手验证了,哪怕在 2021 年底,AI 已经能介入到“信息获取-初步处理”这个链条里了,虽然姿势很别扭。它干不了精细活,但它能帮你完成第一轮的海量信息粗筛。这让我隐约觉得,有些东西要变了。我以前赖以生存的“信息搜集效率”优势,可能很快就不算优势了。别人用更好的模型,更懂如何提问,就能在更短时间里,建立起比我更庞大的知识地图。
焦虑感又上来了,但这次和 2016 年那种对具体技能的焦虑不太一样。这次是对“理解 AI 思维”的焦虑。我知道它现在只是个辅助,甚至是个蹩脚的辅助。但我更清楚,如果我不尽快摸透它的脾气,学会怎么高效地“使用”而不仅仅是“调用”它,等它真正进化到下一个阶段,我可能连做它辅助的资格都没有。
窗外的疫情把世界割裂成一个个孤岛,但代码和网络却能穿透这些壁垒。我出不去,但我的爬虫可以。现在的 AI 还很笨,但我知道,它学习的速度,可能比我快。














