1.3 KiB
1.3 KiB
DESIGN - 报表自动化架构设计
1. 整体架构
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. 数据流向
- 启动浏览器 -> 建立 Context。
Secsion Service登录 -> 获取报表下载对象。- 保存文件至
temp_downloads/目录。 Upload Service读取该文件并上传。- 关闭浏览器。
4. 异常处理策略
- 超时处理: 设置全局等待超时(30s)。
- 重试机制: 对关键点击动作进行简单重试。
- 日志记录: 使用 Python
logging模块记录每一步状态。
5. 接口契约 (伪代码)
class SecsionService:
def login(page, username, password): ...
def export_report(page, date_str) -> str: ... # returns file path
class UploadService:
def upload(page, file_path): ...