Initial commit

This commit is contained in:
2026-03-02 17:02:09 +08:00
commit f8a14a3e2e
16 changed files with 1845 additions and 0 deletions
+173
View File
@@ -0,0 +1,173 @@
# 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. 扩展性
- 支持添加更多用户
- 支持添加更多网站
- 支持自定义失败阈值
- 支持自定义通知消息内容
- 支持切换浏览器类型和运行模式