5分钟跑通网页数据自动提取:Hermes Agent 浏览器自动化实战
【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent
还在手动复制表格数据、反复刷新页面核对价格吗?把任务丢给 Hermes Agent 的浏览器自动化模块,让它替你完成数据提取:打开网页、定位元素、填写表单,最后把结构化结果交还给你。
它能帮你解决什么问题
数据提取:告诉它"抓取这个商品列表页的规格和价格",它会自动翻页滚动,返回一张可以直接入库的对照表,你只负责验收结果。
表单填写:给它一份待提交的记录清单和登录页地址,它逐个填好账号、勾选协议并提交,遇到校验异常会停下并把现场反馈给你。
内容监控:定时任务里加一句"检查公告页有没有新条目",每次运行它对比上次快照,只输出新增内容,页面没变就安静结束。
背后的 3 个关键机制
云端执行:浏览器跑在 Browserbase 云环境中,你本机连浏览器都不用装,登录态、指纹、验证码拦截统一由云端处理。这样设计的好处是任务跑在干净隔离的容器里,不会被你本机的代理或证书问题带偏。
可访问性树快照(ariaSnapshot):工具不把页面截成图,而是渲染成带引用 ID 的文本树,LLM 读文本就能"看懂"页面结构。这对没有视觉能力的模型价值最大——它不用猜像素,直接按文本定位该点哪里。
任务会话隔离:每个 task_id 绑定一个独立浏览器会话,多个任务并行时页面、Cookie 互不串扰。任务结束会话随即回收,不会把上一个任务的登录态漏给下一个任务。
5 分钟跑通第一个任务
git clone https://gitcode.com/GitHub_Trending/he/hermes-agent cd hermes-agent && npm install export BROWSERBASE_API_KEY=你的API密钥 export BROWSERBASE_PROJECT_ID=你的项目ID两个环境变量均可在 Browserbase 控制台获取,配置完即可开始调用 浏览器工具源码。
一次完整的网页数据提取流程
下面是一个连续脚本:导航、取快照、点开详情、填关键词、滚动加载,最后提取结果:
from tools.browser_tool import (browser_navigate, browser_snapshot, browser_click, browser_type, browser_scroll) tid = "extract_001" browser_navigate("https://example.com/products", task_id=tid) snap = browser_snapshot(task_id=tid, full=False) # 输出含 @e1 等引用ID browser_click("@e5", task_id=tid) # 点进详情页 browser_type("@e3", "关键词", task_id=tid) # 先清空再输入 browser_scroll("down", task_id=tid) # 触发懒加载 print(browser_snapshot(task_id=tid, full=True)) # 提取完整内容task_id是会话的钥匙:同一个 ID 内所有操作共享一个云端页面,换 ID 就是全新环境。full=False返回只含交互元素的紧凑视图,省 token;需要读正文时再传full=True。@e1、@e5这类引用 ID 来自快照输出里的方括号标注,先取快照、再按 ID 操作,顺序不能反。
⚡ 两个进阶能力(按需使用)
视觉分析:遇到 CAPTCHA、图片验证码或纯图表内容,文本树帮不上忙,这时用视觉兜底——browser_vision("这张图上的验证码是什么?", task_id=tid),它会截屏交给视觉模型判断。
会话超时调优:会话默认 300 秒不活动即被回收,长任务中途等待人工介入时可能超时,调大即可:export BROWSER_INACTIVITY_TIMEOUT=900。
🛠 新手最容易踩的 3 个坑
Q1:没先 navigate 就调用 click/type,报错怎么办?必须先browser_navigate建立页面,其他操作都依赖当前页上下文。看到报错先补一次导航,不要连续重试原命令。
Q2:快照为什么只返回了一半?超过 8000 字符的快照会被截断或交给 LLM 摘要,长页面建议full=False取紧凑视图,再分块滚动分段提取。
Q3:任务跑一半会话没了?空闲 300 秒会话就会被自动清理,重新 navigate 会拿到全新环境。长流程把BROWSER_INACTIVITY_TIMEOUT调大,或确保每步操作间隔不超时。
一句话收尾
把"打开页面、点、填、取数"这条链路交给 Hermes Agent,你只需要定义输入和验收标准。
- 文档目录:docs/
- 浏览器工具源码:tools/browser_tool.py
【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考