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