Files
AutoLogon/开发文档.md
T
2025-10-18 16:43:45 +08:00

5.1 KiB
Raw Blame History

自动登录网站并管理Cookies项目开发文档

1. 项目概述

本项目使用Python语言和DrissionPage库开发一个自动化脚本,用于按顺序登录多个网站,保持登录状态一段时间后保存更新的cookies,并关闭网站。该应用支持配置多个网站、自定义保持登录时间、自动管理cookies以及完整的日志记录系统。

2. 功能需求

  • 从配置文件读取网站地址和对应的cookies信息
  • 按顺序登录每个网站
  • 登录成功后保持登录状态指定时间(可配置)
  • 保存更新后的cookies信息到配置文件
  • 关闭网站浏览器实例
  • 完整的日志记录功能
  • 支持自定义浏览器路径配置

3. 技术栈

  • Python 3.8+
  • DrissionPage库(用于浏览器自动化)
  • JSON用于配置文件格式
  • Python标准库logging(用于日志记录)

4. 项目结构

autoLogon/
├── main.py             # 应用主入口
├── login_manager.py    # 登录管理器
├── config.py           # 配置管理器
├── logger_config.py    # 日志配置
├── config.json         # 配置文件
├── requirements.txt    # 依赖列表
├── README.md           # 项目说明文档
└── log/                # 日志文件夹(自动创建)

5. 模块设计

5.1 配置管理器 (config.py)

功能:负责加载、保存和管理应用配置,包括网站列表、浏览器路径等信息。

主要类和方法

  • ConfigManager: 配置管理类
    • __init__(config_file='config.json'): 初始化配置管理器
    • load_config(): 加载配置文件,处理文件不存在或格式错误的情况
    • save_config(config): 保存配置到文件
    • get_sites(): 获取所有网站配置
    • add_site(site_config): 添加网站配置
    • update_site(site_name, updated_config): 更新网站配置
    • delete_site(site_name): 删除网站配置

5.2 登录管理器 (login_manager.py)

功能:负责浏览器的初始化、网站登录、cookies管理和会话维护。

主要类和方法

  • LoginManager: 登录管理类
    • __init__(): 初始化登录管理器
    • login(site_url, cookies=None): 登录网站,支持设置cookies
    • maintain_login(duration=120): 保持登录状态指定时间
    • get_cookies(): 获取当前页面的cookies
    • close(): 关闭浏览器页面

5.3 日志配置器 (logger_config.py)

功能:设置全局日志记录器,支持文件和控制台双重输出。

主要类和方法

  • LoggerConfig: 日志配置类
    • setup_logger(log_level=logging.INFO): 设置日志记录器
  • global_logger: 全局日志记录器实例

5.4 主程序模块 (main.py)

功能:应用主入口,协调各模块工作流程。

主要类和方法

  • AutoLoginApp: 自动登录应用主类
    • __init__(): 初始化自动登录应用
    • run(): 运行自动登录应用,执行完整的登录流程

主要流程

  1. 初始化配置管理器和登录管理器
  2. 加载配置文件
  3. 遍历处理每个网站配置
    • 获取网站URL和cookies信息
    • 登录网站
    • 保持登录状态指定时间
    • 获取并更新cookies
  4. 保存更新后的配置到文件
  5. 关闭浏览器资源

6. 配置文件格式 (JSON)

{
  "browser_path": "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe",
  "sites": [
    {
      "name": "网站名称",
      "url": "网站URL",
      "duration": 30,
      "cookies": [
        {
          "name": "cookie名称",
          "value": "cookie值",
          "domain": "域名",
          "path": "/",
          "expires": 0,
          "secure": false,
          "httpOnly": false
        }
      ]
    }
  ]
}

配置项说明

  • browser_path: 浏览器可执行文件路径(可选)
  • sites: 网站配置列表
    • name: 网站名称
    • url: 网站URL
    • duration: 保持登录状态的时间(秒),默认30秒
    • cookies: cookies列表,每个cookie包含完整信息(name, value, domain等)

## 7. 依赖安装

```bash
pip install -r requirements.txt

requirements.txt内容:

drissionpage

8. 实现步骤

  1. 创建项目目录结构
  2. 编写日志配置模块 (logger_config.py)
  3. 编写配置管理器模块 (config.py)
  4. 编写登录管理器模块 (login_manager.py)
  5. 编写主程序模块 (main.py)
  6. 创建配置文件示例 (config.json)
  7. 测试各个模块
  8. 整合测试

9. 注意事项

  • 确保使用正确的cookies格式,支持列表格式
  • 处理可能的登录失败情况,程序有完整的异常处理
  • 考虑网站的反爬机制,避免频繁操作
  • 妥善保存配置文件,cookies可能包含敏感信息
  • 处理网络异常和超时情况
  • 确保正确配置浏览器路径,默认为Edge浏览器
  • 程序运行时需要有足够权限启动浏览器

10. 扩展功能建议

  • 实现登录失败重试机制
  • 添加多线程或异步支持以提高效率
  • 实现定时任务功能
  • 添加GUI界面便于操作
  • 添加cookies加密存储功能
  • 实现更智能的登录验证机制
  • 添加多浏览器支持
  • 实现命令行参数解析功能