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

171 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 自动登录网站并管理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)
```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加密存储功能
- 实现更智能的登录验证机制
- 添加多浏览器支持
- 实现命令行参数解析功能