# media-create **Repository Path**: venturechan2021/media-create ## Basic Information - **Project Name**: media-create - **Description**: 小红书自动上报12345 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-04-20 - **Last Updated**: 2025-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小红书自动发布工具 一个基于 Python + Selenium 的小红书自动发布工具,支持命令行模式和 Web API 服务模式。 ## 功能特点 - 支持多账号管理 - 自动保存登录状态 - 提供 Web API 接口 - 支持多种登录方式 - 自动处理登录失效 ## 安装和配置 1. 克隆项目: ```bash git clone [项目地址] cd media-create ``` 2. 安装依赖: ```bash pip install -r requirements.txt ``` 3. 确保已安装 Chrome 浏览器和对应版本的 ChromeDriver ## 运行方式 ### 1. Web 服务模式(推荐) 默认启动 Web 服务模式: ```bash python main.py ``` 自定义配置启动: ```bash python main.py --mode web --host 0.0.0.0 --port 5001 --debug ``` 参数说明: - `--mode web`: 以 Web 服务模式运行 - `--host`: 监听地址(默认:0.0.0.0) - `--port`: 端口号(默认:5001) - `--debug`: 是否启用调试模式 注意:在 macOS 上,端口 5000 通常被 AirPlay 服务占用,因此默认使用 5001 端口。如果需要使用其他端口,可以通过 `--port` 参数指定。 ### 2. 命令行模式 直接发布内容: ```bash python main.py --mode cli --login-method qr ``` 参数说明: - `--mode cli`: 以命令行模式运行 - `--login-method`: 登录方式 - `qr`: 默认二维码登录(优先小红书App扫码) - `xhs_qr`: 使用小红书App扫码登录 - `wx_qr`: 使用微信扫码登录 - `phone`: 使用手机号验证码登录 ## Web API 接口 ### 1. 发布帖子 发布一篇小红书帖子。 **请求** - URL: `/api/publish` - 方法: `POST` - Content-Type: `application/json` **请求参数** ```json { "username": "小红书用户名", "title": "帖子标题", "content": "帖子正文", "images": ["图片1路径", "图片2路径"], "topics": ["话题1", "话题2"] // 可选 } ``` **响应** ```json { "success": true, "message": "发布成功", "need_login": false } ``` **curl 示例** ```bash curl -X POST http://localhost:5001/api/publish \ -H "Content-Type: application/json" \ -d '{ "username": "你的小红书用户名", "title": "测试帖子", "content": "这是一篇测试帖子的正文内容", "images": ["/path/to/image1.jpg", "/path/to/image2.jpg"], "topics": ["测试话题1", "测试话题2"] }' ``` ### 2. 登录账号 登录小红书账号(需要手动扫码)。 **请求** - URL: `/api/login` - 方法: `POST` - Content-Type: `application/json` **请求参数** ```json { "username": "小红书用户名" } ``` **响应** ```json { "success": true, "message": "登录成功" } ``` **curl 示例** ```bash curl -X POST http://localhost:5001/api/login \ -H "Content-Type: application/json" \ -d '{ "username": "你的小红书用户名" }' ``` ## 生产环境部署 ### 使用 Gunicorn 1. 安装 Gunicorn: ```bash pip install gunicorn ``` 2. 启动服务: ```bash gunicorn -w 4 -b 0.0.0.0:5001 "src.api:app" ``` ### 使用 Supervisor 管理进程 1. 安装 Supervisor: ```bash pip install supervisor ``` 2. 创建配置文件 `/etc/supervisor/conf.d/xhs_publisher.conf`: ```ini [program:xhs_publisher] directory=/path/to/media-create command=gunicorn -w 4 -b 0.0.0.0:5001 "src.api:app" autostart=true autorestart=true stderr_logfile=/var/log/xhs_publisher.err.log stdout_logfile=/var/log/xhs_publisher.out.log ``` 3. 更新并启动服务: ```bash supervisorctl reread supervisorctl update supervisorctl start xhs_publisher ``` ### Nginx 配置示例 ```nginx server { listen 80; server_name your_domain.com; location / { proxy_pass http://127.0.0.1:5001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` ## 注意事项 1. 首次使用某个账号时需要先调用登录接口进行扫码登录 2. 登录状态会自动保存,但可能会定期失效需要重新登录 3. 图片路径需要是服务器可访问的本地路径 4. 生产环境部署时建议: - 使用 Gunicorn 或 uWSGI 作为 WSGI 服务器 - 使用 Supervisor 管理进程 - 配置 Nginx 作为反向代理 - 添加适当的安全措施(如 API 认证) - 不要启用调试模式 ## 目录结构 ``` media-create/ ├── main.py # 主程序入口 ├── requirements.txt # 项目依赖 ├── README.md # 项目文档 ├── src/ │ ├── __init__.py │ ├── api.py # Web API 实现 │ ├── xhs_client.py # 小红书客户端 │ └── xhs_publisher.py # 发布器封装 ├── xhs_accounts/ # 账号数据目录 │ └── ... └── logs/ # 日志目录 └── ... ``` ## 常见问题 1. 端口 5000 被占用: - 在 macOS 上,端口 5000 通常被 AirPlay 服务占用 - 解决方案1:使用其他端口(默认使用 5001) - 解决方案2:在系统设置中关闭 AirPlay 接收器 2. 登录失败: - 检查网络连接 - 确保扫码时使用正确的 App - 查看日志获取详细错误信息 3. 发布失败: - 检查图片路径是否正确 - 确认登录状态是否有效 - 查看日志中的具体错误信息 4. 服务无法启动: - 检查端口是否被占用 - 确认是否有正确的权限 - 查看错误日志 ## 更新日志 - 2024-03-22: 初始版本发布 - 支持 Web API 服务 - 支持多账号管理 - 自动保存登录状态