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

3.4 KiB
Raw Blame History

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

1. 项目概述

本项目使用Python语言和DrissionPage库开发一个自动化脚本,用于按顺序登录多个网站,保持登录状态一段时间后保存更新的cookies,并关闭网站。

2. 功能需求

  • 从配置文件读取网站地址和对应的cookies信息
  • 按顺序登录每个网站
  • 登录成功后保持登录状态2分钟
  • 保存更新后的cookies信息
  • 关闭网站

3. 技术栈

  • Python 3.8+
  • DrissionPage库
  • JSON/YAML用于配置文件格式

4. 项目结构

autoLogon/
├── config.py          # 配置文件处理模块
├── login_manager.py   # 登录管理模块
├── cookie_handler.py  # Cookies处理模块
├── main.py            # 主程序入口
├── config.json        # 配置文件(存储网站和cookies信息)
├── requirements.txt   # 依赖包列表
└── README.md          # 项目说明文档

5. 模块设计

5.1 配置文件处理模块 (config.py)

功能:负责读取和写入配置文件中的网站地址和cookies信息

主要函数

  • load_config(file_path): 加载配置文件
  • save_config(config_data, file_path): 保存配置文件

功能:负责cookies的管理,包括解析、转换和保存

主要函数

  • parse_cookies(cookie_str): 解析cookies字符串为字典格式
  • cookies_to_str(cookies_dict): 将cookies字典转换为字符串
  • save_cookies(site_url, cookies, config_manager): 保存网站的cookies到配置文件

5.3 登录管理模块 (login_manager.py)

功能:负责网站的登录和维护登录状态

主要函数

  • login_to_site(browser, site_url, cookies): 使用提供的cookies登录网站
  • verify_login(browser): 验证是否登录成功
  • maintain_session(browser, duration=120): 保持登录状态指定时间

5.4 主程序模块 (main.py)

功能:程序入口,协调各模块工作

主要流程

  1. 初始化配置管理器
  2. 加载配置文件
  3. 初始化浏览器
  4. 遍历每个网站配置
  5. 调用登录管理模块登录网站
  6. 保持登录状态
  7. 更新并保存cookies
  8. 关闭浏览器

6. 配置文件格式 (JSON)

{
    "sites": [
        {
            "name": "网站A",
            "url": "https://example.com",
            "cookies": {
                "cookie1": "value1",
                "cookie2": "value2"
            }
        },
        {
            "name": "网站B",
            "url": "https://example2.com",
            "cookies": {
                "cookie3": "value3",
                "cookie4": "value4"
            }
        }
    ]
}

7. 依赖安装

pip install drissionpage

8. 实现步骤

  1. 创建项目目录结构
  2. 编写配置文件处理模块
  3. 编写Cookies处理模块
  4. 编写登录管理模块
  5. 编写主程序模块
  6. 创建配置文件示例
  7. 测试各个模块
  8. 整合测试

9. 注意事项

  • 确保使用正确的cookies格式
  • 处理可能的登录失败情况
  • 考虑网站的反爬机制
  • 妥善保存配置文件,避免敏感信息泄露
  • 处理网络异常和超时情况

10. 扩展功能建议

  • 添加日志记录功能
  • 实现登录失败重试机制
  • 添加多线程或异步支持以提高效率
  • 实现定时任务功能
  • 添加GUI界面便于操作