# 小红书登录后端服务

基于 Playwright 的小红书登录服务，支持手机号+验证码登录。

## 功能特性

- ✅ 手机号+验证码登录
- ✅ 自动化浏览器操作
- ✅ 获取登录后的 Cookies 和用户信息
- ✅ RESTful API 接口

## 技术栈

- Python 3.8+
- FastAPI - Web 框架
- Playwright - 浏览器自动化
- Uvicorn - ASGI 服务器

## 安装步骤

### 1. 创建虚拟环境（如果还没有）

```bash
cd backend
python -m venv venv
```

### 2. 激活虚拟环境

**Windows:**
```bash
venv\Scripts\activate
```

**Linux/Mac:**
```bash
source venv/bin/activate
```

### 3. 安装依赖

```bash
pip install -r requirements.txt
```

### 4. 安装 Playwright 浏览器

```bash
playwright install chromium
```

## 使用方法

### 启动服务

```bash
python main.py
```

服务将在 `http://localhost:8000` 启动。

### API 接口

#### 1. 发送验证码

**POST** `/api/xhs/send-code`

请求体:
```json
{
  "phone": "13800138000",
  "country_code": "+86"
}
```

响应:
```json
{
  "code": 0,
  "message": "验证码已发送，请在小红书APP中查看",
  "data": {
    "sent_at": "2025-12-10T10:00:00"
  }
}
```

#### 2. 登录验证

**POST** `/api/xhs/login`

请求体:
```json
{
  "phone": "13800138000",
  "code": "123456",
  "country_code": "+86"
}
```

响应:
```json
{
  "code": 0,
  "message": "登录成功",
  "data": {
    "user_info": {...},
    "cookies": {...},
    "login_time": "2025-12-10T10:01:00"
  }
}
```

#### 3. 健康检查

**GET** `/`

响应:
```json
{
  "status": "ok",
  "message": "小红书登录服务运行中"
}
```

## 注意事项

1. **滑块验证**: 小红书可能会要求滑块验证，需要手动完成
2. **验证码**: 验证码会发送到小红书 APP，需要在 APP 中查看
3. **浏览器模式**: 
   - 开发时使用 `headless=False` 可以看到浏览器操作
   - 生产环境可设置 `headless=True` 在后台运行
4. **反爬虫**: 小红书有反爬虫机制，可能需要调整策略

## 开发调试

### 查看 API 文档

访问 `http://localhost:8000/docs` 可以看到自动生成的 Swagger 文档。

### 日志输出

服务会在控制台输出详细的操作日志，便于调试。

## 项目结构

```
backend/
├── main.py              # FastAPI 主程序
├── xhs_login.py        # 小红书登录服务
├── requirements.txt    # Python 依赖
├── venv/              # Python 虚拟环境
└── README.md          # 说明文档
```

## 常见问题

### Q: 验证码发送失败？
A: 检查手机号格式是否正确，确保网络连接正常。

### Q: 登录失败？
A: 确认验证码是否正确，验证码有时效性，请及时输入。

### Q: 浏览器无法启动？
A: 确保已经运行 `playwright install chromium` 安装浏览器。

## 安全提示

- 不要在公网暴露此服务
- 生产环境建议添加认证机制
- 妥善保管获取到的 Cookies 和用户信息
