本项目记录了针对政务及土地交易平台(复杂动态加载、Shadow-root 限制、非结构化表格)的数据采集技术演进。通过从 RPA 到 AI Agent 的五次迭代,实现了金融级数据的精准提取与自动化监控。
- V1 (RPA 版): 基于影刀流程自动化,依赖视觉元素识别。
- V2 (DOM 爬虫版): 使用 Selenium 尝试直接定位元素,遭遇 Shadow-root (Closed) 阻断。
- V3 (OCR + 正则版): 采用 Pytesseract 截图识别 + 正则表达式硬编码提取。
- V4 (LLM 内嵌设计版): 结合 Qwen 大模型,将截图或文本语义化,实现非结构化数据转化。
- V5 (Agent 智采版 - Current): 构建具备“感知-决策-执行”能力的 AI Agent,利用 Claude Code 辅助开发,实现复杂异常处理与多源数据校验。
- 语义化提取:摒弃传统硬编码,将网页 Rich Text 传入大模型,利用 Prompt Engineering 让模型自主理解拍卖公告逻辑。
- 结构化输出:强制 LLM 开启 JSON Mode,实现从非结构化公告到标准 Excel 字段的“零损”映射。
- 技术突破:针对
shadow-root (closed)状态下 Selenium 无法定位的痛点,通过 API 逆向工程 绕过前端 DOM 混淆,直接访问底层数据接口。 - 混合采集:在 API 受限时,自动切换至“驱动截图 + 多模态 VLM 识别”的备选链路。
- 闭环通知:
task4.py实现每 15s 自动检测序列号。一旦发现土地状态变更,Agent 即刻触发 SMTP 协议 发送邮件通知。
| 场景 | 技术瓶颈 | Agent / 优化方案 |
|---|---|---|
| 反爬封锁 | 网页存在 Shadow-root (Closed) 结点,Selenium 无法直接定位。 |
API 逆向:分析网络请求直接获取 JSON 数据,稳定性提升 200%。 |
| 识别精度 | 普通 OCR 易产生错别字(如“竞”误识为“竟”),影响金额判定。 | LLM 语义纠错:内嵌大模型逻辑,结合上下文自动修正识别误差。 |
| 网络波动 | 调用 API 识别较慢,且频繁截图易触发超时。 | 异步并发 + 异常熔断:Agent 自动判定超时状态并重试,保障链路高可用。 |
| 开发成本 | 传统硬编码爬虫维护成本极高,网页稍有变动即失效。 | AI-Native 开发:利用 Claude Code 快速调整逻辑,实现代码的敏捷迭代。 |
task3_model.py: AI Agent 核心逻辑,集成 Qwen API 语义提取。task4.py: 实时监控引擎,支持自动检测与邮件预警。city_config.py: 多城市动态配置中心。requirements.txt: 项目依赖(Selenium, Pytesseract, Qwen-SDK 等)。
- 效率提升:自动化 Agent 较人工采集提效 60% 以上。
- 成本降低:通过 API 逆向结合开源大模型,大幅降低了每行数据的采集成本。
- 稳定性:引入 Git 对代码与采集结果进行追踪,确保了项目在 2026 年环境下的稳定流转。
Note: 本项目开发过程中充分利用了 Claude Code 的 Agent 能力进行逻辑编排与 Bug 修复。