🕷️

多平台广告数据爬取系统

Python · Playwright · Streamlit · REST API

覆盖五大广告平台的自动化数据采集系统:Token 双重认证、Playwright 驱动浏览器、Streamlit 仪表盘一键生成报表,日常监控 300+ 广告账号的消耗数据。

5
广告平台
328+
活跃账号
2
认证层级
自动报表

01项目概述

这是一个面向广告投放运营的多平台数据采集与可视化系统。系统每天自动登录五大广告平台,拉取账号消耗、投放数据与转化指标,统一汇总到 Streamlit 仪表盘,并一键导出 CSV/Excel 报表。

项目重点解决的是运营人员每天重复登录多个平台、手动复制粘贴数据的痛点:用 Playwright 自动化浏览器登录、用 Token 双重认证保证安全、用 Streamlit 构建可交互仪表盘、用 Pandas 做数据清洗与汇总。

公开作品集页面仅展示系统设计和工程能力,真实账号、平台 API Key、原始消耗数据和客户信息均已脱敏处理。

02系统架构

账号配置 · 平台凭据 │ ▼ ┌──────────────────────────────────────┐ 任务调度器 定时触发 · 平台分发 并发控制 · 失败重试 · 启动间隔 └──────────────┬───────────────────────┘ │ ┌──────────┼──────────┐ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ 平台 A 平台 B 平台 C... Token 认证 Cookie 同步 Playwright └─────┬────┘ └─────┬────┘ └─────┬────┘ └────────────┼────────────┘ ▼ ┌──────────────────────────────────────┐ 数据清洗层 Pandas · 字段对齐 去重 · 单位换算 · 时间标准化 └──────────────┬───────────────────────┘ │ ▼ ┌──────────────────────────────────────┐ Streamlit 仪表盘 仪表盘 · 趋势图 · 排行榜 · 异常告警 CSV/Excel 导出 · 邮件推送 └──────────────────────────────────────┘

03技术栈与软件环境

🐍
Python
主流程编排、数据处理、任务调度
🎭
Playwright
跨浏览器自动化,处理复杂登录流程
📊
Streamlit
交互式仪表盘,支持筛选与导出
🐼
Pandas
数据清洗、聚合、多源合并
🔐
Token 双重认证
账号密码 + 短信/邮箱验证码双因子
🌐
REST API
平台开放接口对接,减少浏览器开销
📄
CSV / Excel
自动报表生成,运营人员直接使用
定时调度
每日自动运行,无需人工干预
🚨
异常告警
消耗异常、登录失败自动通知

04核心模块

模块职责工程重点
auth_manager.py管理多平台登录态、Token 刷新、Cookie 持久化双因子认证、会话过期处理
crawler_base.py爬虫基类:Playwright 启动、反检测、页面等待浏览器指纹、CDP 隐藏
platform_*.py5 个平台子模块:登录、拉数据、解析、标准化字段对齐、单位换算
data_cleaner.py多源数据合并、去重、时间标准化、异常值过滤数据质量保障
dashboard.pyStreamlit 仪表盘:筛选、图表、排行榜、导出交互体验、性能优化
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 余额排行
Top20 月消耗
Top20 月消耗排行
异常告警
异常告警 · 消耗突增提醒

09安全与脱敏处理

凭据外置
平台账号、API Key、Token 只从环境变量或本地私有文件读取,不写入公开仓库。
数据脱敏
截图中的账号名、客户名、真实消耗金额均已脱敏处理。
合规采集
仅采集授权账号的消耗数据,不涉及用户隐私和第三方数据。
访问控制
仪表盘部署在内网,仅授权运营人员可访问。

10项目收获

这个项目锻炼的是完整的数据采集到可视化的工程闭环能力:不是单点脚本,而是包含多平台适配、认证管理、数据清洗、可视化展示、定时调度、异常告警的一整套系统。

最终沉淀出的能力包括:Playwright 复杂登录流程自动化、多平台数据字段标准化、Streamlit 交互式仪表盘开发、Pandas 多源数据清洗、定时任务稳定性设计、反检测策略、以及数据采集系统的合规化处理方法。