Skip to content

采集引擎

采集引擎用于把不同站点、H5、小程序、接口、视频平台、法律文书站点等外部数据,按可重复执行的规则采集到吾码平台。它不是一次性的 AI 抓取脚本,而是一套由采集站点、采集规则、采集账号、本地 Worker、任务、步骤、产物、通用结果和导出产物组成的标准系统引擎。

架构

推荐架构如下:

  1. 后台低代码模块保存规则、账号、任务、日志和导出记录。
  2. OpenClaw 本地 Worker 负责启动真实 Chrome、复用浏览器 Profile、处理验证码、捕获接口响应或读取 DOM。
  3. 后端 V8 接口引擎负责任务领取、任务上报、数据入库、导出文件、私有附件上传。
  4. 业务数据写入业务表,采集引擎表只保存通用采集运行数据。

跨平台桌面场景优先使用 OpenClaw,因为它可以封装 Electron / Express / Playwright / Chrome,并支持 Windows 与 macOS 打包。

标准表

采集引擎标准表使用 mci_spider_ 前缀:

表名说明
mci_spider_site采集站点,保存站点类型、基础地址、登录地址、验证码要求。
mci_spider_rule采集规则,保存 Recipe、凭据结构、重试策略、预期计划、保存接口、导出接口。
mci_spider_account采集账号,保存账号、密码密文字段、登录身份名称、浏览器 Profile、验证码策略。
mci_spider_profile浏览器会话,保存 Worker 写入的本地 Chrome Profile 状态。
mci_spider_worker本地 Worker 心跳和运行状态。
mci_spider_task采集任务,保存预计条数、成功条数、失败条数、完整条数、人工处理提示。
mci_spider_task_step任务步骤日志。
mci_spider_artifact采集产物,如截图、验证码图、接口响应、HTML、日志。
mci_spider_result通用采集结果。具体业务表由规则 V8 保存。
mci_spider_export导出产物,保存 TXT、Word、ZIP、Excel 等私有附件路径和导出统计。

通用表不要写死“学校、题目、答案、课程”等业务含义。题库只是业务场景之一,应由业务表和规则 V8 表达。

采集规则

一个可交付的规则必须能被重复执行。mci_spider_rule 至少应包含:

  • RecipeJson:采集步骤、页面入口、接口捕获、DOM 选择器、人工步骤。
  • CredentialSchemaJson:需要哪些账号字段,例如账号、密码、姓名、机构码。
  • RetryPolicyJson:验证码、密码、页面加载、接口捕获的重试策略。
  • ExpectedPlanJson:应采集的账号、分类、课程、接口或页数,用于统计进度。
  • SaveApiEngineKey:保存业务数据的 V8 接口引擎。
  • ExportApiEngineKey:导出交付文件的 V8 接口引擎。
  • ExportConfigJson:支持的导出格式、命名规则、是否按分类拆分、是否上传私有附件。

如果站点需要从另一个系统先获取姓名、主体名等登录身份,Worker 获取成功后应写回 mci_spider_account.LoginIdentityName,下次复跑直接使用。

验证码与登录安全

验证码识别必须保守:

  • 默认同一个账号同一个任务,AI OCR 最多失败或未确认 2 次。
  • 超过 2 次必须弹出真实 Chrome,让用户手动输入验证码。
  • AI 返回验证码后,应让用户确认或修正;取消视为未确认。
  • 密码错误默认只尝试 1 次,避免重复错误触发封号或封 IP。
  • 每次失败都应写入任务步骤和任务错误信息。

Worker 上报

OpenClaw 本地 Worker 应在以下时机写入后台:

  • 打开浏览器:写入 mci_spider_profilebrowser-session 产物。
  • 页面截图:写入 screenshot 产物。
  • 验证码 OCR:写入 captcha-screenshot 产物和验证码步骤。
  • 捕获接口响应:写入 api-response 产物。
  • 保存结果:通过 mci-spider-task-report 上报 ExpectedCountSuccessCountFailCountCompleteCount

V8 引擎

常用接口引擎:

  • mci-spider-worker-heartbeat:Worker 心跳。
  • mci-spider-task-next:领取下一条任务。
  • mci-spider-task-report:上报任务状态、步骤、产物和结果。
  • 规则保存引擎:将采集结果写入业务表。
  • 规则导出引擎:按规则生成 TXT、Word 或其他交付文件并上传为私有附件。

导出文件应通过平台私有附件路径保存,后台用户可以在导出产物中重复下载。不要把客户交付文件做成公开匿名访问。

后台菜单

采集引擎菜单默认建议放在“系统引擎”下,保持两级:

  • 系统引擎 / 采集站点
  • 系统引擎 / 采集规则
  • 系统引擎 / 采集账号
  • 系统引擎 / 采集任务
  • 系统引擎 / 采集Worker
  • 系统引擎 / 浏览器会话
  • 系统引擎 / 任务步骤
  • 系统引擎 / 采集产物
  • 系统引擎 / 采集结果
  • 系统引擎 / 导出产物

当项目以采集为主,或用户已经明确把“采集引擎”作为独立分组时,应保留三级结构,例如“系统引擎 / 采集引擎 / 采集规则”。AI 和 MCP 修复菜单时不能因为默认推荐两级,就隐藏、删除或强行拉平用户刻意创建的三级采集引擎菜单。

交付验收

交付采集规则时,应给出:

  • 应采集多少、实际成功多少、失败多少、完整多少、剩余多少。
  • 哪些账号已保存身份名称、浏览器 Profile 和验证码策略。
  • 是否仍需要人工验证码兜底。
  • 已生成哪些导出产物,TXT/Word/其他文件是否为私有附件。
  • 后台菜单、规则、任务、产物、业务表是否可查看。
  • OpenClaw 本地 Worker 是否可重复执行同一规则。

MIT License.