171 lines
2.9 KiB
Markdown
171 lines
2.9 KiB
Markdown
# 小红书登录后端服务
|
||
|
||
基于 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 和用户信息
|