4.5 KiB
4.5 KiB
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 模块划分
-
Cookie Cloud 模块 (
cookie_cloud.py)- 从 Cookie Cloud 服务器获取 Cookie 数据
- 解密 Cookie 数据
- 按域名组织 Cookie
-
消息通知模块 (
notifier.py)- 集成爱语飞飞 API
- 失败次数追踪
- 通知发送控制
-
浏览器登录模块 (
browser_login.py)- 使用 DrissionPage 控制浏览器
- 检测登录状态
- 管理 Cookie
-
Cookie 管理器 (
browser_login.py)- 统一管理所有 Cookie
- 支持按用户和网站存储
- 持久化存储
-
主程序 (
monitor.py)- 读取配置文件
- 协调各模块工作
- 处理异常和日志
5.2 数据流
配置文件 → 主程序 → 浏览器登录模块 → 网站检测
↓
Cookie 管理器 ← Cookie Cloud 模块
↓
消息通知模块 ← 失败追踪器
6. 核心流程
6.1 监控流程
- 读取配置文件
- 遍历每个用户
- 遍历该用户的每个网站
- 尝试使用本地 Cookie 登录
- 登录失败 → 从 Cookie Cloud 获取 Cookie → 重试登录
- 登录成功 → 刷新页面 → 保存新 Cookie → 重置失败计数
- 登录失败 → 失败计数 +1
- 失败计数达到阈值 → 发送提醒 → 重置计数
- 保存状态到状态文件
6.2 失败重试策略
- 每个网站独立计数失败次数
- 连续失败 3 次后发送通知
- 发送通知后重置计数
- 下次执行重新开始计数
7. 配置管理
7.1 配置文件结构
{
"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. 依赖安装
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. 扩展性
- 支持添加更多用户
- 支持添加更多网站
- 支持自定义失败阈值
- 支持自定义通知消息内容
- 支持切换浏览器类型和运行模式