# 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. 扩展性 - 支持添加更多用户 - 支持添加更多网站 - 支持自定义失败阈值 - 支持自定义通知消息内容 - 支持切换浏览器类型和运行模式