live-forum/server/crawler/commerce/README.md
2026-03-24 11:27:37 +08:00

227 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 字节跳动直播服务平台 Cookie 登录工具
半自动化登录工具,用于管理字节跳动直播服务平台的 Cookie。
## 功能特性
- ✅ 半自动化登录流程(用户手动完成登录,系统自动保存 Cookie
- ✅ Cookie 自动保存和加载
- ✅ 登录成功自动检测(通过 URL 判断)
- ✅ 用户信息自动提取
- ✅ 清晰的命令行提示
## 环境要求
- Python 3.8.6+
- Windows/Linux/macOS
## 安装步骤
### 1. 安装依赖
```bash
pip install -r requirements.txt
```
### 2. 安装 Playwright 浏览器
```bash
playwright install chromium
```
## 使用方法
### 登录流程
```bash
python main.py login
```
执行后会:
1. 自动打开浏览器(最大化窗口)
2. 导航到登录页面
3. 等待你手动完成登录(输入账号密码、完成验证码等)
4. 自动检测登录成功
5. 自动保存 Cookie 到 `./data/cookies.json`
### 查看 Cookie 状态
```bash
python main.py status
```
查看当前保存的 Cookie 信息,包括:
- Cookie 文件路径
- Cookie 数量
- 用户名
- 创建时间
- 最后验证时间
## 项目结构
```
crawler/
├── config/ # 配置文件
│ ├── __init__.py
│ └── settings.py # 系统配置
├── core/ # 核心模块
│ ├── __init__.py
│ ├── cookie_manager.py # Cookie管理器
│ └── browser_login.py # 浏览器登录
├── utils/ # 工具模块
│ ├── __init__.py
│ └── logger.py # 日志工具
├── data/ # 数据目录
│ └── cookies.json # Cookie文件自动创建
├── logs/ # 日志目录
│ └── crawler.log # 日志文件
├── main.py # 主程序入口
└── requirements.txt # 依赖列表
```
## 配置说明
配置文件位于 `config/settings.py`,可以修改:
- `LOGIN_URL`: 登录页面 URL
- `BROWSER_TIMEOUT`: 登录超时时间默认300秒
- `COOKIE_FILE`: Cookie 保存路径
- `LOG_LEVEL`: 日志级别
## 注意事项
1. 登录超时时间默认为 5 分钟,如需修改请编辑 `config/settings.py`
2. Cookie 文件保存在 `./data/cookies.json`,请妥善保管
3. 日志文件保存在 `./logs/crawler.log`
## 故障排除
### 浏览器启动失败
确保已安装 Playwright 浏览器:
```bash
playwright install chromium
```
### 登录检测失败
如果登录后系统未检测到登录成功,请检查:
1. URL 是否包含 `portal/data/leaderboard`
2. 页面是否已加载完成
3. 是否在超时时间内完成登录
## 📤 数据上报功能
系统支持自动将抓取的数据上报到您的服务器。
### 配置上报
编辑 `config/settings.py`
```python
# 启用数据上报
REPORT_URL = "http://your-server.com/api/Streamers/ReportStreamerData?category=commerce&logId={logId}"
REPORT_TIMEOUT = 60
REPORT_MAX_RETRIES = 3
# 禁用数据上报
REPORT_URL = None
```
### 测试上报功能
提供了测试服务器,方便您测试上报功能:
```bash
# 1. 启动测试服务器
python test_report_server.py
# 2. 在另一个终端运行爬虫
python main.py fetch-daren
# 3. 查看测试服务器输出,确认数据是否成功上报
```
详见:[数据上报配置说明.md](./数据上报配置说明.md)
## API验签参数逆向分析
如果您需要分析API接口的验签参数`a_bogus`、`msToken`、`verifyFp` 等),请查看:
- **📖 [逆向分析指南.md](./逆向分析指南.md)** - 详细的逆向分析教程
- **🛠️ [tools/](./tools/)** - 逆向分析工具集
- `capture_params.py` - Python参数捕获工具
- `browser_hook.js` - 浏览器Hook脚本
- `README.md` - 工具使用说明
### 快速开始逆向分析
```bash
# 使用Python工具捕获API参数
python tools/capture_params.py
# 或在浏览器Console中运行Hook脚本
# 复制 tools/browser_hook.js 的内容到Console
```
## 许可证
内部使用
## 账号密码
1网址和账号
网址https://union.bytedance.com/open/
18969047040
YC778899
## 🎯 主要功能
### 1. 单次抓取
```bash
# 抓取达人账号数据(单次)
python main.py fetch-daren
# 自定义每页数量
python main.py fetch-daren --page-size 50
```
详见:[达人账号抓取说明.md](./达人账号抓取说明.md)
### 2. 守护进程(定时抓取)
```bash
# 使用默认配置每1小时抓取一次
python main.py daemon
# 自定义抓取间隔每2小时
python main.py daemon --interval 2
# 自定义每页数量
python main.py daemon --interval 1 --page-size 50
```
详见:[守护进程使用说明.md](./守护进程使用说明.md)
**守护进程特性:**
- ✅ 定时自动抓取达人账号数据
- ✅ 自动保存到本地 `data/all_account/`
- ✅ 自动上报数据到服务器(如已配置)
- ✅ 连续失败容错机制
- ✅ 资源自动清理,避免内存泄漏
- ✅ 详细的日志记录
- ⚠️ Cookie失效时提示重新登录
### 3. 数据格式转换
抓取的数据会自动转换为指定格式:
详见:[数据格式转换说明.md](./数据格式转换说明.md)
### 4. 数据上报
抓取完成后自动上报到服务器:
详见:[数据上报配置说明.md](./数据上报配置说明.md)
```