01项目概述
这是一个基于 Python + Selenium + ixBrowser Local API 的浏览器 RPA 自动化系统,用于把重复的网页注册、资料补全、页面状态判断、跳转链路采集和结果回写整合成一条可批量执行的流水线。
项目重点不是简单地“点按钮”,而是解决真实网页自动化里的复杂问题:浏览器环境隔离、动态页面状态漂移、弹窗与验证流程适配、文件并发写入冲突、浏览器插件配置不一致、批量任务失败后的日志追踪与复盘。
公开作品集页面仅展示系统设计和工程能力,真实账号数据、目标站点、第三方服务 Key、原始日志和完整数据表均已脱敏处理。
02系统架构
CSV 账号数据源
│
▼
┌──────────────────────────────────────┐ │ 任务调度器 ThreadPoolExecutor │ │ profile 范围展开 · 并发限制 · 启动间隔 │ └──────────────┬───────────────────────┘
│
┌──────────┴──────────┐
▼ ▼
┌────────────────┐ ┌────────────────────┐ │ CSV 文件锁 │ │ ixBrowser Profile │ │ 读写互斥 · 防占用 │ │ 环境隔离 · 本地 API │ └────────────────┘ └─────────┬──────────┘
│
▼
┌────────────────────────────┐ │ Selenium WebDriver │ │ Chrome Remote Debugging │ │ 表单填写 · 页面状态机 · 重试 │ └─────────────┬──────────────┘
│
┌───────────────────┴──────────────────┐
▼ ▼
┌──────────────────────┐ ┌────────────────────────┐ │ 验证流程配置适配 │ │ 跳转链路采集 │ │ 插件 Key/开关/模板修复 │ │ performance log + URL hook │ └──────────────────────┘ └───────────┬────────────┘
│
▼
结果 CSV · JSON 日志 · 批量报告
03技术栈与软件环境
🐍
Python
主流程编排、CSV 处理、并发调度、日志输出
🌐
Selenium WebDriver
接管真实浏览器环境,执行多步骤网页交互
🧩
ixBrowser Local API
按 profile 打开浏览器,提供环境隔离与调试端口
🔎
Chrome DevTools
Remote Debugging、performance log、网络链路捕获
📄
CSV 数据源
账号数据读取、强密码写入、状态与链接结果回写
⚙️
ThreadPoolExecutor
批量任务池、并发上限、任务启动间隔控制
🔐
文件锁
避免多进程同时读写 CSV,支持过期锁清理
🧰
验证插件配置
检测 Key、节点地址、开关状态与模板同步
🪟
Windows + PowerShell
本地运行命令、批量日志归档和结果查看
04核心模块
| 模块 | 职责 | 工程重点 |
| run_capitalone_flow.py | 单 profile 主流程:读取账号、打开浏览器、执行注册流程、采集链接、写回结果 | 状态机、重试、浏览器接管、异常收口 |
| run_batch_capitalone_flow.py | 批量任务调度:展开 profile 范围、控制并发、收集子进程输出、生成批量报告 | 并发控制、日志隔离、失败统计 |
| captcha_solver.py | 验证流程状态检测与第三方验证能力适配 | 页面探测、iframe 检测、插件协同 |
| repair_yescaptcha_config.py | 浏览器验证插件配置修复:从稳定模板复制关键配置到目标 profile | 配置漂移处理、模板同步、自动校验 |
05核心功能
单 profile 执行
根据 profile 名称读取对应 CSV 行,生成或复用密码,打开隔离浏览器环境并执行完整流程。
批量范围调度
支持类似 cgo01 到 cgo20 的范围展开,按并发数和启动间隔逐个启动。
浏览器环境隔离
每个任务绑定独立 ixBrowser Profile,降低 Cookie、缓存、插件配置之间的互相影响。
页面状态识别
识别注册页、资料页、邮箱关联页、验证页、异常页等状态,并按状态选择下一步动作。
结果链路采集
通过 performance log、重定向分析和 URL hook 捕获多级跳转链路,筛选目标结果。
结构化日志
单任务输出 JSON,批量任务写入 log 和 CSV,便于统计成功率、失败原因与执行耗时。
06数据流设计
| 阶段 | 输入 | 处理 | 输出 |
| 账号读取 | CSV 第 B/C/E 列 | 按 profile 名匹配账号,必要时生成更强密码 | 账号、密码、姓名候选 |
| 浏览器启动 | profile 名称 | 调用 ixBrowser Local API,获取 webdriver 和调试端口 | 独立浏览器实例 |
| 页面流程 | 账号数据、邮编池 | 表单填写、状态判断、验证流程适配、异常重试 | 注册状态与资料保存状态 |
| 链接采集 | 商家 coupon 入口 | 点击激活、捕获重定向、筛选目标跳转 | 目标链接结果 |
| 结果回写 | 状态、备注、链接 | CSV 文件锁保护下写入指定列 | 可追踪结果表 |
07稳定性设计
CSV 文件锁
用独占锁文件保护读写,避免多个进程同时写入导致数据损坏;支持过期锁自动清理。
启动前预检
批量运行前检查 CSV 是否被 Excel/WPS 占用,提前失败,避免所有任务启动后集中报错。
浏览器打开重试
打开 profile 失败时最多重试 5 次,并记录本地 API 错误码和错误信息。
动态页面短轮询
在 Continue、Save 等关键按钮点击前等待 disabled 状态解除,降低误点和假成功。
配置模板修复
将已验证 profile 的插件配置作为模板,批量同步到目标 profile,减少环境漂移。
异常分层标记
把未注册、资料未更新、邮箱关联、浏览器失败等情况写入备注列,便于后续补跑。
08批量运行报告
批量调度器会为每次运行生成两个文件:一个完整日志文件和一个汇总 CSV。日志保留每个 profile 的 stdout / stderr / 返回码;CSV 记录账号、执行状态、耗时、结果链接、备注和错误摘要。
| 字段 | 说明 |
| profile | 本次执行的浏览器 Profile 名称 |
| status | success / failed |
| duration_seconds | 单任务耗时,便于定位异常慢任务 |
| first_name / last_name | 从账号或随机姓名池生成的资料名称 |
| lego_url / jared_url / adidas_url / kay_url | 脱敏后的目标结果链接字段 |
| remark | 未注册、资料未更新、账号需邮箱关联等状态标记 |
| error | 失败任务的错误摘要,截断保存避免日志过长 |
09安全与脱敏处理
凭据外置
第三方服务 Key 应只从环境变量或本地私有文件读取,不写入公开仓库和作品集。
数据脱敏
账号 CSV、真实邮箱、密码、Profile 名、完整跳转链接和原始日志不对外展示。
目标抽象
作品集只呈现系统能力,不公开具体目标平台的可复用操作细节。
合规边界
该类 RPA 系统应优先用于授权场景,如内部测试、流程验证、数据录入和重复性运营任务。
10项目收获
这个项目锻炼的是偏真实生产环境的自动化工程能力:不是单页脚本,而是包含数据源、任务调度、浏览器环境、动态页面、插件配置、日志与结果表的一整套闭环。
最终沉淀出的能力包括:复杂网页状态机设计、Selenium 接管真实浏览器、Chrome DevTools 网络链路分析、批量任务并发控制、文件锁与数据一致性、失败任务可观测性、以及自动化系统的脱敏展示方法。