141 lines
3.5 KiB
Markdown
141 lines
3.5 KiB
Markdown
# OpenCLI Integration - 通用CLI集成技能
|
|
|
|
集成 [OpenCLI](https://github.com/jackwener/opencli) 能力,将任何网站、Electron应用转换为命令行接口。
|
|
|
|
## 🎯 项目定位
|
|
|
|
这是**预备技能**,当前保持 **xhs-cli + lightpanda** 方案(稳定),但为未来扩展保留OpenCLI能力。
|
|
|
|
```
|
|
当前方案(稳定) 未来扩展(预留)
|
|
├─ xhs-cli ├─ OpenCLI ← 本技能
|
|
├─ lightpanda └─ 更多网站CLI化
|
|
└─ 现有爬虫
|
|
```
|
|
|
|
## 🚀 快速开始
|
|
|
|
### 安装OpenCLI
|
|
|
|
```bash
|
|
# 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
|
|
```
|
|
|
|
### 基础使用
|
|
|
|
```bash
|
|
# 检查状态
|
|
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文档
|
|
|
|
### 初始化
|
|
|
|
```python
|
|
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="...")` |
|
|
|
|
### 便捷方法
|
|
|
|
```python
|
|
# 搜索
|
|
adapter.search("xiaohongshu", "关键词")
|
|
|
|
# 获取详情
|
|
adapter.get("xiaohongshu", "note_id")
|
|
|
|
# 控制Electron应用
|
|
adapter.control_electron("antigravity", "open_file", path="/path/to/file")
|
|
```
|
|
|
|
## 🔧 适配器配置示例
|
|
|
|
### YAML声明式适配器
|
|
|
|
```python
|
|
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` 进行网页抓取
|
|
- ✅ 本技能作为**技术储备**
|
|
|
|
### 未来可能的使用场景
|
|
1. **新网站接入** - 快速探索并生成CLI
|
|
2. **Electron应用** - 控制Antigravity等工具
|
|
3. **复杂交互** - 需要浏览器自动化的场景
|
|
4. **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
|