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

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 模块划分

  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 配置文件结构

{
  "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. 扩展性

  • 支持添加更多用户
  • 支持添加更多网站
  • 支持自定义失败阈值
  • 支持自定义通知消息内容
  • 支持切换浏览器类型和运行模式