227 lines
5.2 KiB
Markdown
227 lines
5.2 KiB
Markdown
# 字节跳动直播服务平台 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)
|
||
``` |