技术原理核心
技术研究 人工智能 LLM
系统将用户的自然语言指令(如提取商品价格)转换为语义向量,然后在 DOM 树中寻找语义最匹配的元素。这依赖于: - Embedding 模型:将指令和 DOM 元素映射到同一向量空间 - 相似度计算:计算余弦相似度,找出最相关元素 - 上下文增强:考虑元素的父子节点,提高定位准确性
深入解析:指令驱动读取的工作机制
核心流程对比
传统整页爬取与 Instruct Read 的根本差异在于数据流的处理时机:
传统方案:网页 → 完整DOM → 全量Markdown → LLM处理 → 提取结果
Instruct Read:网页 + 指令 → 定位目标元素 → 仅返回所需内容 → 结构化结果
这种差异带来了 Token 消耗的数量级差异。
三阶段处理架构
graph TD
A[用户指令] --> B{指令解析}
B --> C[元素定位阶段]
C --> D[内容提取阶段]
D --> E[结构化输出阶段]
C1[DOM 分析] --> C
C2[语义匹配] --> C
C3[视觉定位] --> C
D1[文本清洗] --> D
D2[格式转换] --> D
E1[JSON Schema] --> E
E2[类型验证] --> E
阶段一:智能元素定位
这是 Instruct Read 的核心创新。传统爬虫依赖 CSS 选择器,而 Instruct Read 采用多模态定位:
1. 语义定位(Semantic Location)
系统将用户的自然语言指令(如”提取商品价格”)转换为语义向量,然后在 DOM 树中寻找语义最匹配的元素。这依赖于:
- Embedding 模型:将指令和 DOM 元素映射到同一向量空间
- 相似度计算:计算余弦相似度,找出最相关元素
- 上下文增强:考虑元素的父子节点,提高定位准确性
2. 视觉定位(Visual Location)
部分实现(如 Stagehand)支持视觉定位:
- 将网页渲染为图像
- 使用视觉模型识别目标区域
- 将视觉坐标映射回 DOM 元素
这种方式对样式丰富但语义标记不足的页面特别有效。
3. 结构化定位(Structured Location)
结合 DOM 结构信息:
- 利用 ARIA 标签、语义化标签(如
<article>,<time>) - 分析元素的 role、aria-label 属性
- 识别常见的页面模式(导航栏、侧边栏、评论区)
阶段二:精准内容提取
定位到目标元素后,系统进行精准提取:
Token 节省的关键技术
| 技术 | 原理 | Token 节省幅度 |
|---|---|---|
| DOM 剪枝 | 移除导航、广告、脚注等无关区域 | 40-60% |
| 文本清洗 | 去除空白、合并重复内容 | 10-20% |
| 格式优化 | 只保留必要格式标记 | 5-15% |
| 指令过滤 | 只提取用户指定字段 | 20-40% |
累计效果:综合使用可减少 70-90% Token 消耗。
阶段三:结构化输出
Instruct Read 的另一个优势是原生支持结构化输出:
// 用户指令
"提取文章的标题、作者和发布日期"
// 输出 Schema
{
title: string,
author: string,
publishDate: string
}
这种强类型输出避免了传统方案中”LLM 输出需要二次解析”的问题。
为什么这种设计有效
信息论视角
从信息论角度看,网页的熵分布极不均匀:
- 导航、广告、版权信息等是”低信息熵”区域
- 核心内容是”高信息熵”区域
Instruct Read 本质上是一种信息熵引导的提取策略,只保留高信息熵内容。
认知负荷理论
人类浏览网页时也不会逐字阅读,而是:
- 快速扫描页面结构
- 定位目标信息区域
- 精读相关内容
Instruct Read 模拟了这一认知过程,将”扫描-定位-精读”模式嵌入技术实现。
关键组件剖析
1. 指令解析器(Instruction Parser)
负责理解用户意图:
- 识别实体类型(人物、地点、时间、价格等)
- 解析约束条件(“最新的”、“前三个”等)
- 推断输出格式期望
2. DOM 智能分析器
负责网页结构理解:
- 构建 DOM 语义树(不仅仅是 DOM 树)
- 识别页面布局模式
- 检测动态内容区域
3. 提取执行引擎
负责实际的元素定位和内容获取:
- 执行 CSS/XPath 查询
- 处理 JavaScript 渲染
- 支持分页和无限滚动
结论
Instruct Read 的技术原理建立在三个核心洞察之上:
- 大部分网页内容对特定任务是冗余的
- 自然语言可以有效描述信息需求
- 结构化输出比自由文本更实用
下一章将对比主流实现方案,帮助读者选择适合的工具。