news 2026/5/1 8:33:17

解析规则交给 AI,是效率提升还是系统隐患?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
解析规则交给 AI,是效率提升还是系统隐患?

在过去一年里,一个越来越常见的声音开始出现在数据圈:

“解析规则这一步,其实可以交给大模型。”

理由听起来很诱人:
HTML 结构复杂、页面频繁改版、人工维护 XPath 成本高,而大模型“看一眼页面就能写规则”。

但工程经验告诉我们一句老话:
凡是感觉“省事”的地方,往往藏着系统性风险。

这篇文章不讨论立场,只做一件事:
用一组可复现的 A/B 实验,对比「人工解析规则」和「大模型生成解析规则」在真实爬虫场景中的表现。

一、实验问题定义

我们要回答的不是“能不能用”,而是三个更工程化的问题:

  1. 在真实页面环境下,大模型生成的解析规则成功率如何?
  2. 当页面出现轻微结构变化时,哪一方更稳定?
  3. 在代理 IP、多地区页面差异下,规则是否会发生漂移?

二、实验场景说明

业务背景

假设我们在做一个内容聚合服务,需要采集资讯类网页的三个字段:

  • 标题
  • 正文
  • 发布时间

页面特点如下:

  • 页面由服务端渲染
  • 存在广告、推荐模块
  • 不同地区访问返回的 HTML 存在细微差异

这是一个非常典型、但并不极端的爬虫场景。

三、A/B 两组方案定义

A 组:人工编写解析规则

特点:

  • 由工程师手动分析 DOM
  • 使用稳定层级 XPath
  • 明确字段边界
  • 可解释、可调试

B 组:大模型生成解析规则

流程:

  1. 抓取完整 HTML
  2. 将 HTML 片段 + 字段描述交给大模型
  3. 由大模型输出 XPath / CSS Selector
  4. 程序直接使用该规则解析

这是目前很多“AI + 爬虫”方案真实采用的模式。

四、实验环境与代理配置

为了避免“本地页面过于干净”的问题,实验中所有请求都通过代理 IP 发起,确保:

  • 页面为真实线上版本
  • 触发地区差异
  • 包含更多不确定性因素

下面是统一使用的请求代码示例。

importrequests proxies={"http":"http://用户名:密码@:proxy.16yun.cn:3100","https":"http://用户名:密码@proxy.16yun.cn:3100"}headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)",}deffetch_html(url):response=requests.get(url,headers=headers,proxies=proxies,timeout=10)response.raise_for_status()returnresponse.text

说明:

  • 代理IP使用亿牛云爬虫代理
  • 用户名、密码、域名、端口需替换为实际配置
  • 每次请求随机更换 IP,模拟真实访问

五、解析实现对比

A 组:人工解析代码

fromlxmlimportetreedefparse_by_human(html):tree=etree.HTML(html)title=tree.xpath("//h1[@class='article-title']/text()")content=tree.xpath("//div[@class='article-content']//p/text()")publish_time=tree.xpath("//span[@class='publish-time']/text()")return{"title":title[0]iftitleelseNone,"content":"\n".join(content).strip(),"publish_time":publish_time[0]ifpublish_timeelseNone}

特点非常明显:

  • XPath 较长
  • 明确避开广告区域
  • 每一步都可人工验证

B 组:大模型生成解析规则(示意)

假设大模型返回的结果如下:

{"title":"//h1/text()","content":"//div[contains(@class,'content')]//text()","publish_time":"//time/text()"}

解析代码如下:

defparse_by_llm(html,rules):tree=etree.HTML(html)defextract(rule):result=tree.xpath(rule)returnresult[0].strip()ifresultelseNonereturn{"title":extract(rules["title"]),"content":extract(rules["content"]),"publish_time":extract(rules["publish_time"])}

从代码角度看,B 组非常“优雅”。

六、实验结果统计

我们对同一批 URL 进行 200 次请求,统计结果如下(文字描述):

  1. 首次成功率
    • A 组:约 97%
    • B 组:约 92%
  2. 页面结构轻微调整后
    • A 组:成功率下降到约 90%
    • B 组:成功率下降到约 65%
  3. 多地区代理访问
    • A 组:字段偶发为空,但结构稳定
    • B 组:正文字段明显掺杂推荐内容、版权信息

七、问题出在哪里

通过失败样本回放,我们发现几个非常关键的现象。

1. 大模型倾向于“语义正确,而非结构正确”

它更容易选择:

  • 最短 XPath
  • 最宽泛的 class 匹配
  • 表面看起来“像正文”的区域

但工程上,最像正文的区域,往往不是最稳定的区域

2. 代理IP放大了规则不稳定性

不同 IP 访问返回的 HTML 中:

  • 广告模块顺序不同
  • 推荐内容位置变化
  • A/B 测试标签不同

人工规则通常会主动规避这些区域,而大模型并不知道哪些是“危险区域”。

3. 错误往往是“静默的”

B 组最危险的一点不是报错,而是:

  • 能解析
  • 有内容
  • 但内容是错的

这类错误如果没有人工抽检,很可能直接进入数据仓库。

八、实验结论

通过这次 A/B 对抗实验,我们得到一个非常清晰的工程结论:

  1. 大模型适合做“解析规则的候选生成器”
  2. 不适合直接成为“生产解析规则的唯一来源”
  3. 关键字段的解析,必须是确定性、可解释的

一句话总结:

大模型可以帮你“想规则”,但不能替你“承担规则失效的后果”。

九、一个更稳妥的落地建议

在真实项目中,更推荐的组合方式是:

  • 大模型负责:
    • 新站点初始规则生成
    • 页面结构分析建议
  • 人工负责:
    • 规则确认
    • 关键字段兜底
  • 系统负责:
    • 失败率监控
    • 代理 IP 场景回放

这不是反对 AI,而是让 AI 放在它最擅长的位置

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:13:37

INVICTA BLz45-50/2 底座安装式电动振动电机

INVICTA BLz45-50/2底座安装式电动振动电机,作为BLz系列超重载旗舰机型,传承英国品牌75年工业振动技术积淀,专为超大负荷、高强度散料处理场景打造核心激振动力解决方案。产品采用高强度合金一体化底座设计,刚性固定结构稳固可靠&…

作者头像 李华
网站建设 2026/5/1 6:12:56

2026铜接触网线市场增长:电气化铁路与城市轨道交通中的关键角色

随着全球电气化进程的加快,铜接触网线作为电能传输的关键组件,在电气化铁路、城市轨道交通及工业电气化领域中扮演着不可或缺的角色。据QYResearch最新调研显示,至2025年,全球铜接触网线市场规模预计达到约56.84亿美元&#xff0c…

作者头像 李华
网站建设 2026/4/16 18:12:19

毕设 stm32的火灾监控与可视化系统(源码+硬件+论文)

文章目录 0 前言1 主要功能2 硬件设计(原理图)3 核心软件设计4 实现效果5 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉…

作者头像 李华
网站建设 2026/5/1 3:50:08

创客匠人赋能:AI智能体如何重塑创始人IP打造与知识变现新范式

在阿里云PolarDB开发者大会上,我看到的不只是数据库技术的演进,更是一场关于组织底层逻辑的革命。当AI从"工具"升级为"组织大脑",内容产业的底层逻辑正在发生根本性转变——未来内容不是写出来的,而是"智…

作者头像 李华
网站建设 2026/4/29 9:58:18

计算机毕业设计springboot交通管控系统 基于Spring Boot的智能交通管理平台设计与实现 Spring Boot框架下的交通管控系统开发与应用

计算机毕业设计springboot交通管控系统199g2(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着城市化进程的加速,交通管理成为城市治理的重要组成部分。传统的交通…

作者头像 李华
网站建设 2026/4/30 5:39:17

摆脱命令行!Docker Compose UI + 内网穿透,随时随地管理容器

Docker Compose UI 核心功能是将 Docker Compose 的命令行操作转化为可视化的图形界面,支持 Windows、macOS、Linux 系统通过网页浏览器访问,能实现服务启动 / 停止、实时日志查看、配置动态调整等操作,适配刚接触容器化的新手以及需要协作的…

作者头像 李华