为你想要的记录编写一份 JSON Schema,并在每个网站上使用它。对于静态页面,抓取干净的页面文本(Markdown),让 LLM 填充该 schema。仅在需要登录、点击或 JavaScript 流程的页面上使用浏览器智能体。用该 schema 校验每条记录,对校验失败的记录进行重试或标记,并将源 URL 与每条记录一起存储。
我们开发了 Browser Use。关于其他工具的事实来自它们各自的文档和定价页面,核查于 2026 年 10 月 26 日,并在使用处附有链接。
可靠性清单
- Schema: 必填字段及其类型,以及在取值固定处使用枚举。用 JSON Schema 编写,或从 Pydantic 或 Zod 模型生成。
- 受约束的输出: 开启模型的结构化输出。OpenAI 的模型会让响应 遵循你的 JSON Schema;Anthropic 的模型 保证字段类型和必填字段.
- 在代码中校验: 用以下工具解析每条记录 Pydantic 或 Zod。有效的 JSON 并不等同于正确的数据。
- 空值,而不是猜测:让缺失字段可为空但仍为必填,并告诉模型当页面未显示该值时返回 。证据:在每条记录上保留 ,并为你将要据以行动的字段附上页面中的简短引用。去重:基于稳定键,例如规范 URL 或 SKU。做礼貌的客户端:按域名限速,遵守 robots.txt 和网站条款。抽查:在信任一次运行之前,将随机抽取的记录样本与实时页面进行比对,并在网站变更后再次比对。用保存的代码重新运行:对于一 让缺失字段可为空但仍为必填,并告诉模型返回
null当页面未显示该值时。 - 证据: 保留
source_url每条记录上保留该字段,并为你将要据以行动的字段附上页面中的简短引用。 - 去重: 基于稳定键去重,例如规范 URL 或 SKU。
- 做一个有礼貌的客户端: 按域名限速,遵守 robots.txt 和网站条款。抽查:在信任一次运行之前,将随机抽取的记录样本与实时页面进行比对,并在网站变更后再次比对。用保存的代码重新运行:对于重复执行的任务,保留可用的提取脚本,而不是每次都从头提示。哪个工具适合你工具它是什么登录、JS 流程?Schema 支持开源?计费模式Firecrawl托管抓取 API。JSON 模式按页面提取,也用于爬取和搜索;/agent 取代 /extract,为你查找页面Y robots.txt 以及网站条款。
- 抽查: 在信任一次运行之前,将随机抽取的记录样本与实时页面进行比对,并在网站变更后再次比对。
- 用保存的代码重新运行: 对于重复执行的任务,保留可用的提取脚本,而不是每次都从头提示。
哪个工具适合你
| 工具 | 它是什么 | 登录、JS 流程? | Schema 支持 | 开源吗? | 计费模式 |
|---|---|---|---|---|---|
| Firecrawl | 托管抓取 API。 JSON 模式 按页面提取,也用于 抓取和搜索; /agent它取代了 /extract,为你查找页面 | 是: 操作 在抓取之前,以及 Interact ,并为登录后的页面保存配置文件 | JSON Schema,还是只用提示词 | 核心 AGPL-3.0;仅 Agent、Browser、Interact Cloud(docs) | 致谢:JSON 模式每页 5 次;Agent 按完成的工作计费(计费) |
| Crawl4AI | Python 爬虫库,带有 LLM 提取策略;任何模型通过 LiteLLM | 是的,脚本化: JavaScript 步骤 以及 持久化浏览器配置文件 | 来自 Pydantic 模型的 JSON Schema,尽力而为:文档建议 用 Pydantic 校验;可将长页面拆分为多个块 | Apache-2.0 | 库免费,LLM 费用自理;托管 Cloud 采用月度额度套餐(计费) |
| Browser Use(本文方案) | 云智能体 API:描述任务,返回 JSON。另有一个开源 Python 智能体 | 是的:智能体负责点击、输入和导航; 浏览器配置文件 会复用你的登录状态 | Cloud: JSON Schema,在运行完成前校验。开源版:通过 output_model_schema 使用 Pydantic 模型。智能体库采用 MIT 许可;Cloud 为托管服务。按量付费,无订阅:模型 token、浏览器 $0.02/小时、代理 $5/GB(定价)StagehandBrowserbase 的浏览器自动化框架;extract() 从当前页面读取类型化数据。是:act() 步骤可在本地 Chrome、你正在运行的 Chrome 或 Browserbase 中执行(文档)。Zod、Pydantic 或 Go 类型,在返回前完成校验。MIT 许可。免费,LLM 费用自理;Browserbase 浏览器提供免费额度、$20、,在运行完成前校验。开源版: 通过 output_model_schema 使用 Pydantic 模型。 | 智能体库采用 MIT 许可;Cloud 为托管服务 | 按量付费,无订阅:模型 token、浏览器 $0.02/小时、代理 $5/GB(定价) |
| Stagehand | Browserbase 的浏览器自动化框架; extract() 从当前页面读取类型化数据 | 是的:act() 步骤可在本地 Chrome、你正在运行的 Chrome 或 Browserbase 中执行(docs) | Zod、Pydantic 或 Go 类型,在返回前完成校验。 | MIT | 免费,LLM 费用自理;Browserbase 浏览器提供免费、$20、$99 或定制套餐(定价) |
| 你的代码:HTTP 抓取、HTML 转 Markdown、一次结构化输出调用。否,除非你添加浏览器和 Cookie。你模型的结构化输出。你的代码。仅 LLM token。已知 URL、静态页面:抓取 + Markdown + LLM,或 Firecrawl JSON 模式。浏览器智能体会增加你在这里不需要的模型步骤和浏览器时间。自托管、任意模型、Python:Crawl4AI。以代码优先、带 AI 步骤的浏览器自动化,支持 TypeScript、Python 或 Go:Stagehand。登录、筛选、分页、多步表单:浏览器智能体,例如 | 你的代码:HTTP 抓取、HTML 转 Markdown、一次结构化输出调用 | 不,除非你添加浏览器和 Cookie。 | 你的模型的结构化输出 | 你的代码 | 仅 LLM token |
- 已知 URL、静态页面: 抓取 + Markdown + LLM,或 Firecrawl JSON 模式。浏览器智能体会增加你在这里不需要的模型步骤和浏览器时间。
- 自托管、任意模型、Python: Crawl4AI。
- 以代码优先、带 AI 步骤的浏览器自动化,支持 TypeScript、Python 或 Go: Stagehand。
- 登录、筛选、分页、多步表单: 例如 Browser Use 或 Firecrawl 的 Interact 这样的浏览器智能体。
Browser Use 示例
将 Schema 作为 output_schema。Browser Use 会将智能体的最终答案与之比对;如果无法匹配,本次运行就会失败,并返回 Could not produce output matching outputSchema 而不是返回不符合 schema 的输出()。限制:仅限 API 运行,默认使用 JSON Schema 2020-12,最大 64 KiB、64 层嵌套和约 4,000 个值。对于重复执行的任务,让首次运行在工作区中保存一个经过测试的脚本。后续运行传入 ,从实时网站获取最新数据,并在网站发生变化时修复脚本。每次运行仍会消耗模型 token(可重复运行的脚本)。更多将单个页面转换为 Markdown,免费、无需注册:Website to Markdown。Browser Use 与 Firecrawl 的实测对比:正面交锋。抓取需要登录或筛选的页面).
# Python 3.10+
# pip install "browser-use-sdk>=3.12"
from browser_use_sdk.v4 import BrowserUse
from pydantic import BaseModel
class Product(BaseModel):
name: str
# required, may be null
price: float | None
currency: str | None
source_url: str
class Products(BaseModel):
products: list[Product]
# reads BROWSER_USE_API_KEY
client = BrowserUse()
run = client.runs.create(
"Open https://shop.example.com/laptops and go "
"through every results page. For each product "
"return its name, price, currency and product "
"URL as source_url. Use null for any value "
"the page does not show. Do not guess.",
output_schema=Products.model_json_schema(),
)
run = client.runs.wait_for_completion(run.id)
if run.status.value != "completed":
# flag the site, retry later
raise RuntimeError(run.error or run.status.value)
# validate again in your code
products = Products.model_validate(run.output)限制:仅限 API 运行,默认使用 JSON Schema 2020-12,最大 64 KiB、64 层嵌套和约 4,000 个值。
对于重复执行的任务,让首次运行在工作区中保存一个经过测试的脚本。后续运行传入 workspace_id,从实时网站获取最新数据,并在网站发生变化时修复脚本。每次运行仍会消耗模型 token(可重复运行的脚本).
更多
- 将单个页面转换为 Markdown,免费、无需注册: 网站转 Markdown.
- Browser Use 与 Firecrawl 的实测对比: 正面交锋.
- 抓取需要登录或筛选的页面: AI 网页抓取器.
- 基础抓取与交互式抓取及工具成本: 网页抓取的终极指南.
发布于 2026 年 10 月 26 日
继续阅读
所有文章指南
/2026 年 10 月 25 日如何让你的编程智能体使用你已登录的 Chrome(2026)
让 Claude Code、Codex、Gemini CLI 或 Cursor 使用你已登录的 Chrome:Claude in Chrome、Playwright MCP、Chrome DevTools MCP、Browser Harness 对比。
Gregor Zunic

指南
/2026 年 10 月 25 日Web 智能体基准测试:WebArena、WebVoyager、Mind2Web 及更多(2026)
哪些基准测试在真实网站任务上测试 AI 智能体:WebArena、WebVoyager、Mind2Web、BrowseComp 等,按任务、环境和评分方式进行比较。
Gregor Zunic

指南
/2026 年 10 月 23 日11 款最佳浏览器自动化工具:智能体、脚本与云浏览器
对比 11 种浏览器自动化方案,涵盖 AI 智能体、脚本、云浏览器和可视化工作流,并比较其定价、能力和实际取舍。
Nik Tomazic