124 lines
2.3 KiB
Markdown
124 lines
2.3 KiB
Markdown
# 小红书登录 CLI 工具
|
|
|
|
## 概述
|
|
|
|
这是一个可以被 Go 服务直接调用的 Python CLI 工具,用于小红书登录功能。
|
|
使用此工具后,不再需要单独启动 Python Web 服务。
|
|
|
|
## 使用方式
|
|
|
|
### 1. 发送验证码
|
|
|
|
```bash
|
|
python xhs_cli.py send_code <手机号> [国家区号]
|
|
```
|
|
|
|
示例:
|
|
```bash
|
|
python xhs_cli.py send_code 13800138000 +86
|
|
```
|
|
|
|
返回 JSON 格式:
|
|
```json
|
|
{
|
|
"success": true,
|
|
"message": "验证码发送成功"
|
|
}
|
|
```
|
|
|
|
### 2. 登录
|
|
|
|
```bash
|
|
python xhs_cli.py login <手机号> <验证码> [国家区号]
|
|
```
|
|
|
|
示例:
|
|
```bash
|
|
python xhs_cli.py login 13800138000 123456 +86
|
|
```
|
|
|
|
返回 JSON 格式:
|
|
```json
|
|
{
|
|
"success": true,
|
|
"user_info": {...},
|
|
"cookies": {...},
|
|
"url": "https://www.xiaohongshu.com/"
|
|
}
|
|
```
|
|
|
|
### 3. 注入 Cookie (验证登录状态)
|
|
|
|
```bash
|
|
python xhs_cli.py inject_cookies '<cookies_json>'
|
|
```
|
|
|
|
示例:
|
|
```bash
|
|
python xhs_cli.py inject_cookies '[{"name":"web_session","value":"xxx","domain":".xiaohongshu.com"}]'
|
|
```
|
|
|
|
返回 JSON 格式:
|
|
```json
|
|
{
|
|
"success": true,
|
|
"logged_in": true,
|
|
"cookies": {...},
|
|
"user_info": {...}
|
|
}
|
|
```
|
|
|
|
## Go 服务集成
|
|
|
|
Go 服务已经修改为直接调用 Python CLI 脚本,无需启动 Python Web 服务。
|
|
|
|
### 修改的文件
|
|
|
|
1. **backend/xhs_cli.py** (新增)
|
|
- 命令行接口工具
|
|
|
|
2. **go_backend/service/xhs_service.go** (修改)
|
|
- 使用 `exec.Command` 调用 Python 脚本
|
|
- 不再通过 HTTP 调用 Python 服务
|
|
|
|
3. **go_backend/service/employee_service.go** (修改)
|
|
- 使用 `exec.Command` 调用 Python 脚本
|
|
|
|
### 优点
|
|
|
|
- ✅ 只需启动一个 Go 服务
|
|
- ✅ 部署更简单,不需要管理多个服务进程
|
|
- ✅ 减少网络开销
|
|
- ✅ 更容易调试和维护
|
|
|
|
## 依赖要求
|
|
|
|
确保已安装 Python 依赖:
|
|
```bash
|
|
cd backend
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
主要依赖:
|
|
- playwright
|
|
- asyncio
|
|
|
|
## 注意事项
|
|
|
|
1. Python 命令需要在系统 PATH 中可用
|
|
2. 确保 `xhs_login.py` 和 `xhs_cli.py` 在同一目录
|
|
3. Go 服务会在相对路径 `../backend` 下查找 Python 脚本
|
|
4. 所有输出均为 JSON 格式,便于 Go 服务解析
|
|
|
|
## 错误处理
|
|
|
|
如果执行失败,会返回包含错误信息的 JSON:
|
|
```json
|
|
{
|
|
"success": false,
|
|
"error": "错误描述信息"
|
|
}
|
|
```
|
|
|
|
Go 服务会捕获 stderr 输出并作为错误信息的一部分返回。
|