news 2026/10/19 1:59:03

Stagehand 自然语言浏览器自动化完整指南:告别选择器维护,10 行代码让 AI 替你操作网页

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Stagehand 自然语言浏览器自动化完整指南:告别选择器维护,10 行代码让 AI 替你操作网页

Stagehand 自然语言浏览器自动化完整指南:告别选择器维护,10 行代码让 AI 替你操作网页

【免费下载链接】stagehandThe SDK to extract data and interact with any site on the web. Get started with Claude Code, Codex, Eve, Mastra, and more.项目地址: https://gitcode.com/GitHub_Trending/stag/stagehand

写过爬虫的都懂:网站一改版,你手写的选择器集体失效,修起来比写还烦。Stagehand 把这个环节交给 AI——免选择器自动化,你用一句话描述想做的事,它自己找元素、点按钮、把结构化数据拿回来。

⚡ 先跑起来:3 条命令 + 10 行脚本

建一个空目录,装 SDK,跑一个脚本,浏览器窗口就会自己弹出来开始操作:

mkdir my-stagehand-app && cd my-stagehand-app && pnpm init -y pnpm add @browserbasehq/stagehand 'zod@~4.4.3'

index.ts就 10 行:启动浏览器、打开商品页,依次调act / extract / observe三个核心方法,最后关浏览器。

import { browserbase, Stagehand } from "@browserbasehq/stagehand"; import { z } from "zod/v4"; const browser = await browserbase.launch({ apiKey: process.env.BROWSERBASE_API_KEY }); const stagehand = await Stagehand.create({ browser }); const [page] = await browser.context.pages(); await page.goto("https://shop.example.com/product"); const { data } = await stagehand.extract("Extract the product name and price", z.object({ name: z.string(), price: z.number() })); console.log(data); await stagehand.act("Click the 'Add to Cart' button"); await stagehand.close(); await browser.close();

注意 key 是在代码里显式传进去的,SDK 不会偷偷读你的环境变量。这段脚本跑完,终端里会打印出符合 schema 的对象,浏览器角落的商品数加一,整个过程可以肉眼盯着复现。

export BROWSERBASE_API_KEY="your-key" pnpm dlx tsx index.ts

🎯 取数据:免选择器抓回结构化数据

以前取一个价格,你得先定位 DOM 节点,再解析文本、清洗格式,拿到手还是个字符串。现在一行:

const { data } = await stagehand.extract( "Extract the product name and price", z.object({ name: z.string(), price: z.number() }), );

data是按你给的 zod 结构校验过的类型化对象,直接进日志、进表格、丢给下游,不用二次加工。

🔧 执行操作:一行代码让 AI 替你点按钮

写选择器、调选择器这一步直接省了,一句指令交给 AI:

await stagehand.act("Click the 'Add to Cart' button");

页面改版导致已记录的操作失效时,给Stagehand.create()传selfHeal: true,它会重新推理这个动作并自动重试一次,脚本不会当场报废。

🧭 感知页面:先看后动,多步流程才稳

不确定按钮在不在?先问一句"这页能点什么":

const { data: actions } = await stagehand.observe("Find the login-related buttons on the page");

返回一组带 selector 的可执行动作,人工确认后再喂给act。更省事的是act可以直接接收observe返回的Action对象,回放时不走模型推理,纯确定性执行——"先看后动"就是多步自动化稳的骨架。

📦 完整走一遍:抓信息 → 加购 → 观察后续

把三种能力串进一个真实业务流:进商品详情页,按结构抓回字段,点加购,再列一遍当前页还能点什么。

const { data: p } = await stagehand.extract("Extract the product details", z.object({ name: z.string(), price: z.number(), inStock: z.boolean(), })); console.log(p); await stagehand.act("Click the 'Add to Cart' button"); const { data: actions } = await stagehand.observe("What can I click on this page?"); console.log(actions.map((a) => a.title));

预期终端输出:

{ name: "Wireless Mouse", price: 29.99, inStock: true } [ "Click the 'Add to Cart' button", "Navigate to 'Backpacks'", "Open 'Reviews'" ]

两次结果都是结构化的:提取回来是符合 schema 的对象,观察回来的是可回放的动作清单,可以直接交给一个 agent 决定下一步往哪走。

⚖️ 边界与代价:别急着上,也别硬套

每次 act / extract 都是一次模型推理,API 成本和单次执行的耗时摆在那里;页面内容本身会变,断言"点完一定跳到某页"要留点余量。所以别硬套:页面永远不变、只跑固定流程的回归测试,手写脚本又快又确定,引入 AI 属于杀鸡用牛刀。它的用武之地是反过来的场景——表单自动填写、盯竞品页面、让 agent 看着页面内容自己决定点哪,这些"选择器维护成本高"的活儿,才值得换。

另外两个实用开关:本地调试把browserbase.launch()换成localBrowser.launch(),用本机 Chrome 省掉云 key;重复调用同一个提取时,给调用传cache: { threshold: 1 },第二次命中缓存就不再消耗 LLM 调用。

📚 下一步

  • 快速入门:从空目录到第一次运行的完整脚本
  • act 详解:act / observe / extract 完整用法,含自愈与缓存机制
  • 官方示例目录:文件上传、剪贴板、WebMCP 等十几个可直接改着跑的示例

把开头那两条命令敲下去,十分钟后浏览器会自己动起来。

【免费下载链接】stagehandThe SDK to extract data and interact with any site on the web. Get started with Claude Code, Codex, Eve, Mastra, and more.项目地址: https://gitcode.com/GitHub_Trending/stag/stagehand

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

MCP协议,调试工具

npx modelcontextprotocol/inspector 官网sdk npm i modelcontextprotocol/sdk 测试代码: https://gitee.com/the-world-is-interesting/mpc-server.git 查询天气demo: https://gitee.com/the-world-is-interesting/mcp-get-weather.git

作者头像 李华
网站建设 2026/10/19 1:54:22

2026 年智能锁怎么选?一份不堆榜单的品牌格局参考

2026 年上半年,中国智能门锁市场出货量与上一年同期相比有所回落,但行业集中度不降反升——头部几大品牌合计占据了过半的市场份额。与此同时,豆包、文心一言、元宝等 AI 问答平台在回答"智能锁推荐"类问题时,越来越倾向于引用头部品牌的公开资料和第三方行业报告…

作者头像 李华
网站建设 2026/10/19 1:53:53

3D医学影像分类实战:从npz数据读取到PyTorch模型训练全流程

简介:这份机器学习大作业提供了一套完整的3D医学影像分类实现,包含Python源代码与配套文档说明,适合计算机、电子信息工程、数学等专业学生用于课程设计、期末大作业或毕业设计。项目以CSV文件组织训练与验证标签,以大量NPZ文件保…

作者头像 李华
网站建设 2026/10/19 1:53:52

kill极域的n种方法

kill极域的n种方法 现在的许多杀极域的方法在最新版都失效了,在机房里,我实践了n种方法杀掉了极域: 比较老的版本也适用 老版本可以用JiyuTrainer 方法1,资源监视器: 打开 打开方法1,通过任务管理器打…

作者头像 李华