Hermes Agent 浏览器自动化快速上手:零配置跑通导航、填表与数据提取
【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent
Hermes Agent 的浏览器自动化模块,让你用几行browser_*工具调用就能完成打开页面、点击、填表单、提取数据这类真实任务。全程不用手写选择器,也不用搭 Selenium 脚本。🚀
免配置启动浏览器:先想清楚用哪个后端
默认走本地路线:一个 headless Chromium,零费用、零外部依赖,装完即用。
npm install -g agent-browser agent-browser install # 首次下载 Chromium agent-browser install --with-deps # Debian/Ubuntu/Docker 需连带系统依赖云端后端只需设好 API key 环境变量(Browserbase 是BROWSERBASE_API_KEY+BROWSERBASE_PROJECT_ID,Browser Use 是BROWSER_USE_API_KEY),之后所有browser_*调用自动由云端接管。选择逻辑不复杂:系统先查 Browser Use,再看 Browserbase,两者都没配凭据就回落到本地模式,你通常不需要手动切换。
| 后端 | 成本 | 前置条件 | 隐身/代理 | 适合谁 |
|---|---|---|---|---|
| 本地 headless | 免费 | 一条 install 命令 | 无 | 开发测试、高频短任务 |
| Browserbase | 按量付费 | 两个环境变量 | 支持,还能自动过 CAPTCHA | 生产环境、强反爬站点 |
| Browser Use | 订阅内 | 一个环境变量 | 内置智能反检测 | Nous 订阅用户 |
💡 想锁死某个后端,就在
config.yaml里写browser.cloud_provider。这个字段优先级最高,而且不检查可用性——凭据没配好时它会直接报明确的缺 key 错误,而不是偷偷换到别的后端。
后端抽象层在agent/browser_provider.py,如果你日后想接自研云浏览器,实现同一个生命周期接口注册进agent/browser_registry.py即可,调度端不用改。
跑通第一条自动化任务:快照驱动的操作节奏
核心心智只有一条:所有操作都经由快照。先导航,再拿快照,对着快照里的@e1、@e2引用下指令,动作之后页面变了就重新拿一份。
from tools.browser_tool import browser_navigate, browser_snapshot, browser_click browser_navigate("https://news.example.com", task_id="tech_news") refs = browser_snapshot(task_id="tech_news") # 紧凑视图,只列可交互元素 browser_click("@e3", task_id="tech_news") # 对着 @e3 下指令 snapshot = browser_snapshot(task_id="tech_news", full=True) # 抓全文再提取两个容易踩的坑:
full=False是紧凑交互视图,做点击/输入时用它就够了;full=True才是全文内容,留给提取类任务。- 任何改变 DOM 的动作(点击、提交、滚动加载)之后,旧引用随时会失效,重新快照再操作。
表单类页面照固定套路走:先快照确认字段存在,browser_type填入内容(它会自动清空原有内容,覆盖输入不用额外处理),browser_key("Enter")模拟回车提交,最后回一次快照验证结果。
一次把工具表过目,后文不再逐个演示:
| 工具 | 干什么 |
|---|---|
browser_navigate | 打开目标 URL |
browser_snapshot | 拿交互引用清单(full参数切换紧凑/全文) |
browser_click/browser_type/browser_key | 点击、输入、按键 |
browser_scroll | 滚动加载更多 |
browser_vision | 丢一张截图问视觉模型,处理图表、布局、验证码 |
browser_screenshot | 抓当前页面截图 |
browser_console | 读控制台输出/错误,也可执行自定义 JS 表达式 |
browser_get_images | 批量取页面全部图片的 URL 与 alt 文本 |
browser_close | 显式结束会话 |
文本快照拿不到的东西——图表读数、验证码、页面布局判断——交给browser_vision:直接描述你要找什么,它对截图做理解。调试 JS 异常时用browser_console读错误输出,或者喂一个表达式当场求值。
守住会话:task_id 才是会话的主键
会话生命周期完全由task_id决定:同一个 ID 复用同一个浏览器会话(登录态、滚动位置都保留);闲置超过 300 秒自动释放,阈值可用BROWSER_INACTIVITY_TIMEOUT调宽;确认跑完再调browser_close收尾更干净。多任务并行时每个任务用独立 ID,互不串线。
给 ID 起业务名(price_monitor_amazon、news_tech_roundup),别用task1、test,出问题时一眼能定位。
翻车了按症状对号入座:
- 引用 @eX 失效→ DOM 变了,重新
browser_snapshot再点。 - 长任务中途断连→ 放宽超时,重试加指数退避。
- 页面加载慢→ 分阶段来:先导航,再循环快照轮询,等关键内容出现再继续。
- 被反爬拦截→ 切云端后端并开隐身/代理,同时降低操作频率、模拟人类节奏。
✅ 开工前检查:目标站点 robots 与条款允许自动化、任务 ID 有业务含义、重试与超时策略已就位、API key 走环境变量而非硬编码。
接下来做什么:
- 装好本地后端,跑通"导航 → 快照 → 点击"的最小闭环
- 挑一个带搜索框的页面,练习填表 + 回车提交 + 验证三连
- 给自己定一套 task_id 命名规范,并确认超时策略匹配任务时长
【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考