需配置Hermes Agent的数据采集与本地存储:一、启用内置web-scrape技能抓取并JSON归档;二、用Python脚本桥接Playwright等工具处理反爬;三、通过schedule模块定时采集并时间戳命名归档;四、对接SQLite自动写入结构化快照。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望 Hermes Agent 自动从网页抓取竞品数据并完成结构化归档,则需配置其数据采集能力与本地存储逻辑。以下是实现该目标的具体操作路径:
一、启用 Hermes Agent 内置网页采集技能
该方法依赖 Hermes Agent 已集成的浏览器自动化模块,无需额外安装爬虫工具,直接调用内置 web-scrape 工具即可触发页面解析与字段提取。Agent 会自动识别 HTML 结构、处理 JavaScript 渲染内容,并将结果映射为结构化 JSON。
1、启动 Hermes 交互终端:hermes。
2、输入指令:/skills,确认列表中已存在 web-scrape 技能;若未出现,执行 hermes skill install web-scrape 安装。
3、发送请求:“请访问 https://example-competitor.com/pricing ,提取所有套餐名称、价格、核心功能列表,并以表格形式返回”。
4、等待 Agent 返回结构化数据,随后可追加指令:“将上述结果保存为 pricing_20260417.json 到 ~/hermes-data/competitors/”。
二、通过自定义 Python 脚本桥接外部爬虫工具
当目标网站存在复杂反爬机制(如动态 token、滑块验证)时,Hermes Agent 可调用本地运行的 Python 脚本,复用亮数据或 Playwright 等成熟方案,再将输出导入 Agent 进行归档处理。
1、在 ~/hermes-scripts/ 下新建文件 scrape_competitor.py,内容包含 Playwright 启动、登录、滚动、截图及字段提取逻辑。
2、确保脚本末尾写入:print(json.dumps(result, ensure_ascii=False)),保证标准输出可被 Hermes 捕获。
3、在 Hermes 终端中执行:!python ~/hermes-scripts/scrape_competitor.py。
4、收到输出后,立即使用:归档至 competitors/20260417_shopee_pricing.csv,Agent 将自动调用 csv.writer 生成带表头的归档文件。
三、配置定时任务自动执行采集与归档
利用 Hermes Agent 的 schedule 模块,可设定固定时间周期性拉取指定竞品页面,避免人工触发遗漏,同时确保每次归档文件名含时间戳,防止覆盖。
1、在 Hermes 终端中输入:/schedule add --cron "0 8 * * 1" --command "scrape https://competitor-a.com/products",表示每周一早8点执行。
2、确认调度已注册:/schedule list,检查状态为 active。
3、为该任务绑定归档动作:在命令末尾追加 | save-as competitors/{site}_{date:%Y%m%d}.json。
4、首次手动触发验证:/schedule run now --id [ID],观察 ~/hermes-data/competitors/ 目录是否生成对应时间戳文件。
四、对接本地 SQLite 数据库完成结构化归档
为支持多轮采集数据比对与趋势分析,可将每次抓取结果写入本地 SQLite 表,由 Hermes Agent 自动维护 schema 并执行 INSERT OR REPLACE,确保同一竞品同一页的数据仅保留最新快照。
1、创建数据库文件:sqlite3 ~/hermes-data/competitor_snapshot.db,并在其中执行建表语句(含 url、fetched_at、raw_html_hash、parsed_json 字段)。
2、在 Hermes 中启用数据库插件:hermes plugin enable sqlite。
3、发送复合指令:“抓取 https://competitor-b.com/features 页面,提取 H2 标题与后续段落,存入 competitor_snapshot.db 表 features_snapshot”。
4、验证写入成功:!sqlite3 ~/hermes-data/competitor_snapshot.db "SELECT COUNT(*) FROM features_snapshot WHERE fetched_at > datetime('now', '-1 day')",返回数字大于 0 即表示归档生效。


















