Files
cookie/项目需求文档.md
T
2026-03-02 17:02:09 +08:00

173 lines
4.5 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 自动监控项目需求文档
## 1. 项目背景
本项目旨在实现一个自动化 Cookie 管理和监控系统,通过定时任务检查多个网站的登录状态,自动刷新和更新 Cookie,确保用户能够持续访问目标网站。当登录失败时,系统会自动从 Cookie Cloud 服务器获取最新的 Cookie 进行重试,并在连续失败达到阈值时通过爱语飞飞消息服务发送通知。
## 2. 项目目标
- 自动监控多个网站的登录状态
- 自动刷新和更新 Cookie
- 支持 Cookie Cloud 备份和恢复
- 支持多用户、多网站配置
- 支持多种浏览器(Chrome、Edge
- 支持有头/无头模式切换
- 失败通知机制,避免消息过于频繁
## 3. 技术栈
- **编程语言**: Python 3.14.2
- **浏览器控制**: DrissionPage
- **HTTP 请求**: requests
- **加密解密**: pycryptodome
- **消息通知**: 爱语飞飞 API
- **定时任务**: Windows 任务计划程序
- **配置格式**: JSON
## 4. 运行环境
- **操作系统**: Windows 10/11
- **Python 版本**: 3.14.2
- **浏览器**: Chrome 或 Edge(系统自带)
## 5. 系统架构
### 5.1 模块划分
1. **Cookie Cloud 模块** (`cookie_cloud.py`)
- 从 Cookie Cloud 服务器获取 Cookie 数据
- 解密 Cookie 数据
- 按域名组织 Cookie
2. **消息通知模块** (`notifier.py`)
- 集成爱语飞飞 API
- 失败次数追踪
- 通知发送控制
3. **浏览器登录模块** (`browser_login.py`)
- 使用 DrissionPage 控制浏览器
- 检测登录状态
- 管理 Cookie
4. **Cookie 管理器** (`browser_login.py`)
- 统一管理所有 Cookie
- 支持按用户和网站存储
- 持久化存储
5. **主程序** (`monitor.py`)
- 读取配置文件
- 协调各模块工作
- 处理异常和日志
### 5.2 数据流
```
配置文件 → 主程序 → 浏览器登录模块 → 网站检测
Cookie 管理器 ← Cookie Cloud 模块
消息通知模块 ← 失败追踪器
```
## 6. 核心流程
### 6.1 监控流程
1. 读取配置文件
2. 遍历每个用户
3. 遍历该用户的每个网站
4. 尝试使用本地 Cookie 登录
5. 登录失败 → 从 Cookie Cloud 获取 Cookie → 重试登录
6. 登录成功 → 刷新页面 → 保存新 Cookie → 重置失败计数
7. 登录失败 → 失败计数 +1
8. 失败计数达到阈值 → 发送提醒 → 重置计数
9. 保存状态到状态文件
### 6.2 失败重试策略
- 每个网站独立计数失败次数
- 连续失败 3 次后发送通知
- 发送通知后重置计数
- 下次执行重新开始计数
## 7. 配置管理
### 7.1 配置文件结构
```json
{
"users": [
{
"name": "用户名",
"cookie_cloud": {
"uuid": "Cookie Cloud UUID",
"password": "Cookie Cloud 密码",
"api_url": "Cookie Cloud API 地址"
},
"notification": {
"iyuu_token": "爱语飞飞令牌",
"max_fail_count": 3
},
"browser": {
"type": "edge/chrome",
"headless": true/false
},
"websites": [
{
"name": "网站名称",
"url": "网站地址",
"login_check_selector": "登录检测选择器",
"success_text": "登录成功文本"
}
]
}
]
}
```
### 7.2 数据文件
- `config.json`: 配置文件
- `cookies.json`: Cookie 存储文件
- `state.json`: 失败计数状态文件
## 8. 定时任务
使用 Windows 任务计划程序设置定时任务:
- 执行频率:每 30 分钟
- 执行命令:`python G:\test\cookie\monitor.py`
- 运行账户:SYSTEM
## 9. 依赖安装
```bash
pip install DrissionPage requests pycryptodome
```
## 10. 项目文件结构
```
G:\test\cookie\
├── config.json # 配置文件
├── monitor.py # 主程序
├── cookie_cloud.py # Cookie Cloud 模块
├── notifier.py # 消息通知模块
├── browser_login.py # 浏览器登录模块
├── state.json # 失败计数状态文件
└── cookies.json # Cookie 存储文件
```
## 11. 安全考虑
- Cookie Cloud 使用端到端加密
- 配置文件包含敏感信息,需妥善保管
- 定时任务使用 SYSTEM 账户运行,需谨慎授权
- 爱语飞飞令牌不应泄露
## 12. 扩展性
- 支持添加更多用户
- 支持添加更多网站
- 支持自定义失败阈值
- 支持自定义通知消息内容
- 支持切换浏览器类型和运行模式