01项目概述
这是一个面向广告投放运营的多平台数据采集与可视化系统。系统每天自动登录五大广告平台,拉取账号消耗、投放数据与转化指标,统一汇总到 Streamlit 仪表盘,并一键导出 CSV/Excel 报表。
项目重点解决的是运营人员每天重复登录多个平台、手动复制粘贴数据的痛点:用 Playwright 自动化浏览器登录、用 Token 双重认证保证安全、用 Streamlit 构建可交互仪表盘、用 Pandas 做数据清洗与汇总。
公开作品集页面仅展示系统设计和工程能力,真实账号、平台 API Key、原始消耗数据和客户信息均已脱敏处理。
02系统架构
账号配置 · 平台凭据
│
▼
┌──────────────────────────────────────┐ │ 任务调度器 定时触发 · 平台分发 │ │ 并发控制 · 失败重试 · 启动间隔 │ └──────────────┬───────────────────────┘
│
┌──────────┼──────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐ │ 平台 A │ │ 平台 B │ │ 平台 C...│ │ Token 认证 │ │ Cookie 同步 │ │ Playwright │ └─────┬────┘ └─────┬────┘ └─────┬────┘
└────────────┼────────────┘
▼
┌──────────────────────────────────────┐ │ 数据清洗层 Pandas · 字段对齐 │ │ 去重 · 单位换算 · 时间标准化 │ └──────────────┬───────────────────────┘
│
▼
┌──────────────────────────────────────┐ │ Streamlit 仪表盘 │ │ 仪表盘 · 趋势图 · 排行榜 · 异常告警 │ │ CSV/Excel 导出 · 邮件推送 │ └──────────────────────────────────────┘
03技术栈与软件环境
🎭
Playwright
跨浏览器自动化,处理复杂登录流程
🔐
Token 双重认证
账号密码 + 短信/邮箱验证码双因子
🌐
REST API
平台开放接口对接,减少浏览器开销
📄
CSV / Excel
自动报表生成,运营人员直接使用
04核心模块
| 模块 | 职责 | 工程重点 |
| auth_manager.py | 管理多平台登录态、Token 刷新、Cookie 持久化 | 双因子认证、会话过期处理 |
| crawler_base.py | 爬虫基类:Playwright 启动、反检测、页面等待 | 浏览器指纹、CDP 隐藏 |
| platform_*.py | 5 个平台子模块:登录、拉数据、解析、标准化 | 字段对齐、单位换算 |
| data_cleaner.py | 多源数据合并、去重、时间标准化、异常值过滤 | 数据质量保障 |
| dashboard.py | Streamlit 仪表盘:筛选、图表、排行榜、导出 | 交互体验、性能优化 |
| scheduler.py | 定时任务、并发控制、失败重试、告警推送 | 稳定性、可观测性 |
05核心功能
多平台统一采集
五大广告平台一套代码管理,新增平台只需实现爬虫基类的抽象方法。
Token 双重认证
账号密码 + 短信/邮箱验证码双因子登录,支持会话过期自动刷新。
328+ 账号监控
支持批量账号管理,按客户/项目分组,一键查看所有账号消耗。
Streamlit 仪表盘
交互式图表:趋势图、饼图、排行榜、Top20 高消耗账号,支持时间筛选。
CSV/Excel 自动报表
每日定时生成报表,运营人员直接打开使用,无需手动复制粘贴。
异常消耗告警
消耗突增、突降、登录失败等异常自动告警,避免预算浪费。
06数据流设计
| 阶段 | 输入 | 处理 | 输出 |
| 账号读取 | 账号配置文件 | 按平台分组、加载凭据 | 待采集账号列表 |
| 平台登录 | 账号 + Token | 双因子认证、会话刷新 | 有效登录态 |
| 数据拉取 | 登录态 + 时间范围 | API 调用或页面解析 | 原始消耗数据 |
| 数据清洗 | 多平台原始数据 | 字段对齐、单位换算、去重 | 标准化数据表 |
| 报表生成 | 标准化数据 | 聚合、排序、图表渲染 | CSV/Excel + 仪表盘 |
07稳定性设计
登录态自动恢复
Token 过期或 Cookie 失效时自动重新登录,避免任务中断。
失败任务重试
单账号失败不影响其他账号,失败任务自动重试 3 次。
反检测策略
Playwright 指纹隐藏、CDP 反检测、人类化操作间隔,降低封号风险。
并发控制
按平台限流,避免触发平台风控;并发数可配置。
结构化日志
每个账号、每次任务输出 JSON 日志,便于追踪问题。
异常告警推送
登录失败、消耗异常等情况自动推送告警,支持邮件/企业微信。
08仪表盘截图
以下是 Streamlit 仪表盘的实际运行截图(已脱敏处理):
仪表盘主界面 · 多账号汇总
账号搜索 · 按客户/项目筛选
消耗趋势图 · 时间序列
平台分布 · 各平台占比
每日趋势 · 日消耗变化
Top20 余额排行
Top20 月消耗排行
异常告警 · 消耗突增提醒
09安全与脱敏处理
凭据外置
平台账号、API Key、Token 只从环境变量或本地私有文件读取,不写入公开仓库。
数据脱敏
截图中的账号名、客户名、真实消耗金额均已脱敏处理。
合规采集
仅采集授权账号的消耗数据,不涉及用户隐私和第三方数据。
10项目收获
这个项目锻炼的是完整的数据采集到可视化的工程闭环能力:不是单点脚本,而是包含多平台适配、认证管理、数据清洗、可视化展示、定时调度、异常告警的一整套系统。
最终沉淀出的能力包括:Playwright 复杂登录流程自动化、多平台数据字段标准化、Streamlit 交互式仪表盘开发、Pandas 多源数据清洗、定时任务稳定性设计、反检测策略、以及数据采集系统的合规化处理方法。