Logo
热心市民王先生

技术原理核心

技术研究 人工智能 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 本质上是一种信息熵引导的提取策略,只保留高信息熵内容。

认知负荷理论

人类浏览网页时也不会逐字阅读,而是:

  1. 快速扫描页面结构
  2. 定位目标信息区域
  3. 精读相关内容

Instruct Read 模拟了这一认知过程,将”扫描-定位-精读”模式嵌入技术实现。

关键组件剖析

1. 指令解析器(Instruction Parser)

负责理解用户意图:

  • 识别实体类型(人物、地点、时间、价格等)
  • 解析约束条件(“最新的”、“前三个”等)
  • 推断输出格式期望

2. DOM 智能分析器

负责网页结构理解:

  • 构建 DOM 语义树(不仅仅是 DOM 树)
  • 识别页面布局模式
  • 检测动态内容区域

3. 提取执行引擎

负责实际的元素定位和内容获取:

  • 执行 CSS/XPath 查询
  • 处理 JavaScript 渲染
  • 支持分页和无限滚动

结论

Instruct Read 的技术原理建立在三个核心洞察之上:

  1. 大部分网页内容对特定任务是冗余的
  2. 自然语言可以有效描述信息需求
  3. 结构化输出比自由文本更实用

下一章将对比主流实现方案,帮助读者选择适合的工具。