a
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user