Files

43 lines
1.3 KiB
Markdown

# DESIGN - 报表自动化架构设计
## 1. 整体架构
```mermaid
graph TD
A[Main Script] --> B[Browser Manager]
A --> C[Secsion Service]
A --> D[Upload Service]
B --> E[Playwright Context]
C --> E
D --> E
```
## 2. 核心组件说明
- **Browser Manager**: 初始化 Playwright,配置 `ignore_https_errors`,管理浏览器生命周期。
- **Secsion Service**:
- `login()`: 处理角色选择、账号密码输入、登录按钮点击。
- `export_report(date)`: 处理日期填写、点击导出、捕获下载流。
- **Upload Service**:
- `upload_file(file_path)`: 处理 94kan.cn 的文件上传。
## 3. 数据流向
1. 启动浏览器 -> 建立 Context。
2. `Secsion Service` 登录 -> 获取报表下载对象。
3. 保存文件至 `temp_downloads/` 目录。
4. `Upload Service` 读取该文件并上传。
5. 关闭浏览器。
## 4. 异常处理策略
- **超时处理**: 设置全局等待超时(30s)。
- **重试机制**: 对关键点击动作进行简单重试。
- **日志记录**: 使用 Python `logging` 模块记录每一步状态。
## 5. 接口契约 (伪代码)
```python
class SecsionService:
def login(page, username, password): ...
def export_report(page, date_str) -> str: ... # returns file path
class UploadService:
def upload(page, file_path): ...
```