Hermes + 爬虫浏览器 实际环境审计
版本: 2.0 | 更新日期: 2026-07-10
基于实际环境全面审计,修正旧版文档中与当前环境不符的描述。
📊 目前实际可用工具一览
| 类别 | 工具 | 状态 | 说明 |
|---|---|---|---|
| 浏览器引擎 | PinchTab MCP (v0.12.0) | 🟡 运行中但 401 | 唯一激活的浏览器工具,38+ 工具,但 token 异常导致调用失败 |
| Chromium headless_shell | ✅ 可用 | v149.0.7827.0,Hermes 自带 /opt/hermes/.playwright/ | |
| MCP 浏览器服务器 | PinchTab | ✅ 已配置 | /opt/data/home/.pinchtab/bin/pinchtab mcp |
| Puppeteer / Playwright MCP | ❌ 未安装 | config.yaml 中无配置 | |
| Hermes 内置 | browser_* 工具集 |
🔴 已禁用 | disabled_toolsets: [browser, web] |
web_* 工具集 |
🔴 已禁用 | 同上 | |
| Python | httpx 0.28.1 |
✅ 已安装 | 异步 HTTP 客户端 |
requests 2.33.0 |
✅ 已安装 | 同步 HTTP 客户端 | |
Playwright Python 1.60.0 |
🟡 CLI 可用 | 安装但浏览器未下载(playwright install 未执行) | |
| BS4 / Scrapy / Selenium / lxml | ❌ 未安装 | 需要 pip install | |
| 终端工具 | curl / rg |
✅ 可用 | HTTP 请求 + 文本搜索 |
wget / jq / pup / htmlq |
❌ 未安装 | 需要 apt install 或 pip install |
1. 🎯 实际可用的爬虫方案
方案 A:PinchTab MCP(当前唯一浏览器工具)
前提:先修复 token
cp /opt/data/home/.pinchtab/config.json /opt/data/.pinchtab/config.json
# 或重启 Gateway
适用场景:
- 导航 + 截图 + 文本提取(navigate → snapshot → text)
- 页面交互(click → fill → type → select)
- 等待条件(wait_for_selector / wait_for_text / wait_for_url)
- 网络拦截(network_route / network)
- JS 执行(evaluate)
- PDF 导出
工具清单(38+):
导航: navigate, go_back, go_forward, reload, close_tab
交互: click, fill, type, select, hover, focus, press, scroll
内容: snapshot, get_text, find
截图: screenshot (支持元素级、注解框)
等待: wait_for_load, wait_for_selector, wait_for_text, wait_for_url
标签: list_tabs, close_tab
网络: network, network_detail, network_clear, network_route, network_unroute
其他: evaluate, cookies, dialog, pdf, health, frame
限制:
- 当前 token 异常(401),修复后可使用
- 不适合大规模爬取(单实例常驻)
- Profile 缓存 699M,需定期清理
方案 B:httpx / requests + terminal
唯一可用的纯 HTTP 方案。无需额外安装。
# 简单 GET(可用)
curl https://api.example.com/data
# 带 header
curl -H "Authorization: Bearer xxx" https://api.example.com
# Python httpx(异步,推荐)
python3 -c "
import httpx, json
r = httpx.get('https://example.com', timeout=30)
print(r.status_code)
print(r.text[:500])
"
限制:无法解析 HTML(无 BS4/lxml),只能做 API 调用或纯文本提取。如需 HTML 解析需先 pip install beautifulsoup4 lxml。
方案 C:Playwright Python(CLI 已安装,浏览器未下载)
Playwright 1.60.0 已安装但浏览器(chromium/firefox/webkit)未下载。
# 需要先安装浏览器
playwright install chromium
# 或指定路径
playwright install --with-deps chromium
# 然后可通过 terminal() 调用
python3 -c "
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto('https://example.com')
print(page.title())
browser.close()
"
适用:需要完整浏览器渲染、反爬对抗的场景。
2. ⚠️ 与旧版文档的关键差异
| 项目 | 旧版声称 | 实际状态 |
|---|---|---|
| 内置 browser 工具 | 可用 | 🔴 disabled_toolsets 禁用 |
| 内置 web 工具 | 可用 | 🔴 同上 |
| BeautifulSoup4 | 可 pip install | 未安装,需 uv pip install bs4 lxml |
| Scrapy | 可 pip install | 未安装 |
| Selenium | 可 pip install | 未安装 |
| Puppeteer MCP | 可配置 | 未配置,config.yaml 中无 |
| Playwright MCP | 可配置 | 未配置 |
| Browserbase MCP | 可配置 | 未配置 |
| wget / jq / pup / htmlq | 可用 | 未安装,仅 curl + rg |
| Playwright 浏览器 | 已安装 | 未下载(CLI 有但 playwright install 未执行) |
3. 🛠️ 快速启用指南
3.1 修复 PinchTab(推荐)
# MCP 进程可能丢失了 token
cp /opt/data/home/.pinchtab/config.json /opt/data/.pinchtab/config.json
fuser -k 9867/tcp
# 等待 PinchTab server 自动重启(~5s)
curl http://127.0.0.1:9867/health
3.2 恢复内置 browser 工具集
# 编辑 /opt/data/config.yaml,删除 disabled_toolsets 中的 browser 和 web
# 或改为:
disabled_toolsets: []
# 重启 Gateway
3.3 安装 Python 爬虫基础套件
uv pip install beautifulsoup4 lxml # HTML 解析
uv pip install playwright # 已安装,需下载浏览器:
playwright install chromium
3.4 安装终端工具
apt-get update && apt-get install -y jq wget # JSON 解析 + 下载
npm install -g htmlq # CSS 选择器解析
3.5 对比:PinchTab vs 内置 browser 工具
| 维度 | PinchTab MCP | 内置 browser 工具 |
|---|---|---|
| 进程模型 | 常驻 daemon | 按需启动 |
| 冷启动 | 首次 ~960ms,后续 ~224ms | 每次 ~1000+ms |
| 工具数量 | 38+ | ~10 |
| 网络拦截 | ✅ (route/unroute) | ❌ |
| JS 执行 | ✅ evaluate | ✅ browser_console |
| AI 视觉 | ❌(仅截图输出) | ✅ browser_vision |
| 磁盘占用 | ~761M(含 Profile) | ~0(复用 Headless Shell) |
4. 📈 实际使用场景建议
| 场景 | 推荐方案 | 需要 |
|---|---|---|
| 纯 API 调用 / 简单页面抓取 | curl 或 httpx | 无(已有) |
| 需要浏览器渲染的交互操作 | PinchTab MCP | 修复 token |
| HTML 解析提取 | Python httpx + BS4 | uv pip install bs4 lxml |
| 大规模并发爬取 | 独立脚本 + terminal | 安装 Scrapy / httpx |
| 反爬 / Cloudflare 绕过 | PinchTab + autoSolver | 修复 token + 配置 autoSolver |
| AI 视觉分析页面 | PinchTab screenshot + vision | 修复 token |
| 定时监控爬虫 | cronjob(no_agent=True) + curl | 无 |
5. 🔧 已知问题
- PinchTab 401 token 异常 — 服务重启后 MCP 进程使用的 token 与 server 不匹配。修复见 3.1。
- browser / web 工具集被禁用 — 旧版文档声称可用,实际 config.yaml 中
disabled_toolsets: [browser, web]。如需启用见 3.2。 - Playwright 只有 CLI 没浏览器 — 包已安装但
playwright install未执行,浏览器二进制缺失。 - 无 HTML 解析库 — 最简单的 BS4 也未安装,纯文本提取依赖 PinchTab 的 get_text。
- Hermes 自带 headless_shell 有两个版本 — 1223(旧,二进制已不存)和 1228(当前),PinchTab config 中 binary 路径指向 1223 但实际只有 1228 可用。
# 🔧 修复 headless_shell 路径
pinchtab config set browser.binary /opt/hermes/.playwright/chromium_headless_shell-1228/chrome-linux/headless_shell
— Hermes Agent 维护于 Trilium | v2.0 基于实际环境审计