hermes + 爬虫浏览器 调研手册

Hermes + 爬虫浏览器 调研手册

概述

本文档记录关于 Hermes AgentWeb 爬虫/浏览器自动化 的调研内容、工具链、使用方式及集成方案。

Hermes 内置完整的浏览器自动化工具集,同时可通过 MCP、CLI 子进程、Python 脚本等方式与第三方爬虫框架集成,实现从简单数据提取到复杂网页交互的全覆盖。


Hermes 内置浏览器工具

Hermes Agent 自带完整的浏览器自动化能力(Browser Toolset),基于本地 Chromium 或远程 Browserbase/Camofox 浏览器实例。

可用工具

工具功能
browser_navigate导航到指定 URL,初始化浏览器会话
browser_snapshot获取页面可访问性树的文本快照(含交互元素 ref ID)
browser_click按 ref ID 点击页面元素(如 @e5
browser_type向输入框填写文本
browser_scroll向上/向下滚动页面
browser_press键盘按键(Enter、Tab、Escape 等)
browser_vision截图 + AI 视觉分析
browser_console读取浏览器控制台输出 / 执行 JS 表达式
browser_get_images获取页面所有图片 URL 和 alt 文本
browser_back返回上一页

使用场景

  • 低代码爬取 — navigate 到页面 → snapshot 查看内容 → 提取数据
  • 表单自动化 — type 填写 → click 提交 → 读取结果
  • 浏览器内 JS 执行 — browser_console 的 expression 参数可直接运行 JS 提取复杂数据
  • 验证码/视觉分析 — browser_vision 截图分析
  • 单页应用(SPA)爬取 — 浏览器渲染后提取动态内容

启用方式

hermes tools enable browser
# 需要可用的 Chromium(本地安装 / Browserbase / Camofox)

MCP + 浏览器集成

Hermes 原生 MCP 客户端可接入多种浏览器/爬虫相关 MCP 服务器:

Puppeteer MCP

  • 用途:Headless Chrome 控制(导航、截图、PDF、点击、填写)
  • 安装:在 Hermes config.yaml 中添加 MCP 配置
  • 优势:比内置 browser 工具更细粒度的页面控制

Playwright MCP

  • 用途:跨浏览器自动化(Chromium / Firefox / WebKit)
  • 优势:多浏览器支持、网络拦截、移动端模拟

Browserbase MCP

  • 用途:云端无头浏览器(反检测、代理、并发)
  • 优势:大规模爬虫、反爬规避

终端 + 爬虫框架集成

通过 Hermes 的 terminal() 工具可调用常见的 Python/Node.js 爬虫框架:

Python 生态

框架用途安装
requests + BeautifulSoup4静态 HTML 解析提取pip install requests beautifulsoup4
Scrapy大规模爬虫框架pip install scrapy
Playwright (Python)无头浏览器自动化pip install playwright && playwright install
Selenium传统浏览器自动化pip install selenium
httpx异步 HTTP 客户端pip install httpx
selectolax高性能 HTML 解析pip install selectolax
pandas结构化数据处理/导出pip install pandas

Node.js 生态

工具用途安装
PuppeteerHeadless Chrome 控制npx puppeteer
Playwright (Node)跨浏览器自动化npx playwright
Cheerio服务端 jQuery 解析npm install cheerio
Crawlee爬虫框架(支持 headless)npm install crawlee

纯终端工具

工具用途
curlHTTP 请求
wget文件/网站下载
jqJSON 解析
htmlqHTML CSS 选择器解析
pup命令行 HTML 解析器
ripgrep (rg)文本搜索
ydotool / xdotoolLinux 桌面自动化

集成方案

方案一:内置 Browser 工具(推荐日常使用)

架构:Hermes 直接调用内置浏览器工具

// 示例:爬取新闻标题
browser_navigate(url: "https://example.com/news")
browser_snapshot()       // 获取页面内容和元素 ref
// Hermes 从 snapshot 提取需要的数据

// 示例:搜索并提取结果
browser_navigate(url: "https://google.com")
browser_type(ref: "@e3", text: "查询关键词")
browser_press(key: "Enter")
browser_snapshot()       // 搜索结果

优势:零额外依赖,工具原生集成,支持 AI 视觉分析

局限:不适合大规模高并发爬取

方案二:Python 脚本 + execute_code(中等规模)

架构:Hermes 通过 execute_code 运行 Python 爬虫脚本

from hermes_tools import terminal

# 安装依赖
terminal("pip install httpx beautifulsoup4")

# 爬取脚本
code = \"""
import httpx, json
from bs4 import BeautifulSoup

r = httpx.get('https://example.com', timeout=30)
soup = BeautifulSoup(r.text, 'html.parser')
titles = [h.text.strip() for h in soup.select('h2.title')]

print(json.dumps(titles, ensure_ascii=False))
\"""

result = terminal(f'python3 -c {shlex.quote(code)}')
data = json_parse(result['output'])

优势:Python 生态完整,适合中等复杂度的爬虫任务

方案三:Playwright/Scrapy 脚本 + terminal(大型爬虫)

架构:编写独立爬虫脚本,通过 terminal() 执行

# 写入爬虫脚本
write_file(path="/tmp/crawler.py", content="...")

# 执行
terminal("python3 /tmp/crawler.py --output /tmp/data.json", timeout=300)

# 读取结果
read_file(path="/tmp/data.json")

优势:可处理复杂爬虫逻辑(翻页、登录、反爬)、大文件、长时间运行

方案四:Cron 定时爬虫

架构:Hermes cron 定时执行爬虫任务

  • 定时触发 → 爬取数据 → 处理/分析 → 通过 Telegram 等平台推送结果
  • 适用于:价格监控、新闻聚合、竞品跟踪
  • 支持 script 模式(纯脚本爬虫)或 agent 模式(AI 驱动爬虫)
# 定时爬虫 cron 示例
cronjob(action="create", schedule="0 8 * * *",
        prompt="每天早晨爬取 Hacker News 首页头条,汇总发送到 Telegram",
        skills=["youtube-content"])

反爬与应对策略

反爬手段应对方案
User-Agent 检测浏览器工具自动模拟真实 UA
IP 频率限制代理池 / Browserbase 代理 / 延时请求
Cloudflare/WAFPlaywright/Puppeteer 模拟完整浏览器指纹;Browserbase 内置反检测
JavaScript 渲染浏览器工具 / Playwright 自动执行 JS
验证码browser_vision AI 识别
登录鉴权浏览器工具自动登录后 maintain session
动态 DOM/APIbrowser_console 执行 JS 提取 / 拦截 Network 请求获取原始 API 数据

对比总结

方案适用场景学习成本性能反爬能力
内置 browser 工具快速交互、AI 视觉分析中(真实浏览器)
execute_code + Python中等规模静态/API 爬取低(需自行处理)
Playwright/Puppeteer MCP生产级浏览器爬虫高(可配置指纹)
Scrapy 独立脚本超大规模爬虫最高中(需中间件)
Browserbase (云端)高并发、强反爬场景高(云端)最高

注意事项

  • 尊重 robots.txt — 爬取前检查目标网站的爬虫协议
  • 请求频率控制 — 加延时避免对目标服务器造成压力
  • 大规模爬取慎用公共 IP — 建议使用代理或 Browserbase 等方案
  • 浏览器权限 — 内置 browser 工具需要本地 Chromium;可通过 Browserbase 或 Camofox 使用云端浏览器
  • 数据存储 — 爬取结果可通过 write_file 保存为 JSON/CSV,或集成到 gbrain/Trilium 等知识库
  • 内存/超时 — 大型爬虫建议用 terminal(background=true) 避免超时

调研进度

  • [x] Hermes 内置 Browser 工具调研
  • [x] MCP + 浏览器集成调研
  • [x] 终端爬虫框架集成调研
  • [x] 集成方案设计
  • [ ] PoC 验证