将网页抓取工具视为生产服务
大多数团队将损坏的网络爬虫视为一项繁琐任务:有人发现数据异常,在浏览器中打开页面,修补选择器,然后重新部署。当只有一个爬虫且有人每日查看其输出时,这种方式可行;但当爬虫数量达到十几个,而损坏在一周后才以下游报告中出现的异常数值形式暴露时,它便不再奏效。在本文中,我将介绍如何构建可被编目、健康检查、追踪和修复的网络爬虫,使其如同其他生产级服务一样运作,其中由大语言模型(LLM)提出修复方案,由纯 Python 代码决定是否发布这些修复。该项目源于 WeMakeDevs 黑客马拉松,并荣获第一名。产品本身规模较小:它从三家流媒体提供商中抓取约十二天的电视指南数据,排名前十的即将上映电影和前十的即将播出剧集,并允许用户通过一次点击在 Philo 上录制任意内容。我将略过产品本身,专注于底层架构:漂移规则、状态模型、验证器以及各组件背后的代码。这些模块可迁移至任何运行爬虫的团队,或任何允许大语言模型修改实时系统的团队。