154 lines
4.0 KiB
Markdown
154 lines
4.0 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. 是否在超时时间内完成登录
|
||
|
||
## 许可证
|
||
|
||
内部使用
|
||
|
||
|
||
## 账号密码
|
||
1.网址和账号
|
||
网址:https://union.bytedance.com/open/
|
||
18969047040
|
||
YC778899
|
||
|
||
执行:
|
||
```sh
|
||
# 抓取排行榜数据(默认包含粉丝数)
|
||
python main.py crawl
|
||
|
||
# 不抓取粉丝数据
|
||
python main.py crawl --no-fetch-fans
|
||
|
||
# 抓取粉丝数据(显式指定)
|
||
python main.py crawl --fetch-fans
|
||
|
||
# 循环运行模式(守护进程)
|
||
# 每隔1小时抓取不包含粉丝的数据,每隔6小时抓取包含粉丝的数据
|
||
python main.py daemon
|
||
|
||
# 自定义循环间隔(小时)
|
||
python main.py daemon --interval-no-fans 2 --interval-with-fans 12
|
||
|
||
# 守护进程模式说明:
|
||
# - 程序会持续运行,按配置的间隔自动抓取数据
|
||
# - 不包含粉丝数据的抓取:默认每1小时执行一次(可在 config/settings.py 中配置)
|
||
# - 包含粉丝数据的抓取:默认每6小时执行一次(可在 config/settings.py 中配置)
|
||
# - 按 Ctrl+C 可以安全停止程序
|
||
# - 程序会自动管理内存,避免内存泄漏
|
||
# - 控制台输出已优化,避免日志过多导致卡顿
|
||
# - Cookie失效处理:
|
||
# * 如果Cookie失效,程序会尝试自动重新登录(会打开浏览器)
|
||
# * 如果重新登录失败,程序不会停止,会继续运行但抓取会失败
|
||
# * 连续失败3次后,程序会给出警告提示,建议手动运行 'python main.py login' 更新Cookie
|
||
# * 建议在服务器上运行时,定期检查日志,确保Cookie有效
|
||
``` |