3.5 KiB
3.5 KiB
OpenCLI Integration - 通用CLI集成技能
集成 OpenCLI 能力,将任何网站、Electron应用转换为命令行接口。
🎯 项目定位
这是预备技能,当前保持 xhs-cli + lightpanda 方案(稳定),但为未来扩展保留OpenCLI能力。
当前方案(稳定) 未来扩展(预留)
├─ xhs-cli ├─ OpenCLI ← 本技能
├─ lightpanda └─ 更多网站CLI化
└─ 现有爬虫
🚀 快速开始
安装OpenCLI
# 1. 安装Node.js >= 20.0.0
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# 2. 安装OpenCLI
npm install -g @jackwener/opencli
# 3. 验证安装
opencli --version
基础使用
# 检查状态
python3 opencli_adapter.py status
# 诊断环境
python3 opencli_adapter.py doctor
# 探索网站API
python3 opencli_adapter.py explore https://www.xiaohongshu.com
# 生成适配器
python3 opencli_adapter.py synthesize xiaohongshu
# 执行命令
python3 opencli_adapter.py exec xiaohongshu search --args query=关键词
📚 API文档
初始化
from opencli_adapter import OpenCLIAdapter
adapter = OpenCLIAdapter()
核心方法
| 方法 | 说明 | 示例 |
|---|---|---|
setup() |
初始化环境 | adapter.setup() |
doctor() |
诊断状态 | adapter.doctor() |
list() |
列出适配器 | adapter.list() |
explore(url) |
探索API | adapter.explore("https://...") |
synthesize(name) |
生成适配器 | adapter.synthesize("mysite") |
execute(cli, action) |
执行命令 | adapter.execute("xhs", "search", query="...") |
便捷方法
# 搜索
adapter.search("xiaohongshu", "关键词")
# 获取详情
adapter.get("xiaohongshu", "note_id")
# 控制Electron应用
adapter.control_electron("antigravity", "open_file", path="/path/to/file")
🔧 适配器配置示例
YAML声明式适配器
config = {
"name": "mysite",
"base_url": "https://example.com",
"selectors": {
"search_box": "input[name='q']",
"search_button": "button[type='submit']",
"result_item": ".result-item"
},
"commands": {
"search": {
"description": "搜索内容",
"params": ["query"]
}
}
}
path = adapter.create_yaml_adapter("mysite", config)
📋 与现有方案对比
| 特性 | xhs-cli | OpenCLI | 适用场景 |
|---|---|---|---|
| 稳定性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | 生产环境用xhs-cli |
| 通用性 | ⭐⭐ | ⭐⭐⭐⭐⭐ | 新网站用OpenCLI探索 |
| 易用性 | ⭐⭐⭐⭐ | ⭐⭐⭐ | xhs-cli更直接 |
| 扩展性 | ⭐⭐ | ⭐⭐⭐⭐⭐ | OpenCLI可扩展任意网站 |
| 资源占用 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | xhs-cli更轻量 |
⚠️ 使用建议
当前阶段(保持现状)
- ✅ 继续使用
xhs-cli处理小红书 - ✅ 继续使用
lightpanda进行网页抓取 - ✅ 本技能作为技术储备
未来可能的使用场景
- 新网站接入 - 快速探索并生成CLI
- Electron应用 - 控制Antigravity等工具
- 复杂交互 - 需要浏览器自动化的场景
- AI自发现 - 让AI自动学习和使用新工具
🔗 参考链接
- OpenCLI GitHub: https://github.com/jackwener/opencli
- npm包: https://www.npmjs.com/package/@jackwener/opencli
- 中文文档: https://github.com/jackwener/opencli/blob/main/README.zh-CN.md
📝 License
MIT