被执行人信息
案件雷达
法律从业者的一键监控利器 — 验证码自动识别 · 批量查询 · 变更追踪 · Excel 导出
背景与痛点
中国执行信息公开网(zxgk.court.gov.cn)是查询被执行人案件信息的唯一官方渠道。每次查询需要手动输入验证码,批量查询更是耗时耗力。
“每天早上第一件事就是打开执行信息网,查关联公司有没有新增被执行案件,一个一个手动查太慢了。”
— 目标用户:法律从业者
验证码障碍
每次查询都要手动输入图形验证码,打断工作流,批量查询几乎不可能
WAF 封锁
网站部署了 Web 应用防火墙,请求过频会触发临时 IP 封锁,需要精细的请求调度
变更难追踪
每日重复查询同一批公司,无法自动识别新增 / 撤销的执行案件
目标用户
工具围绕法律从业者的日常合规监控需求设计,核心场景:每日批量查询关联公司是否有新增被执行案件。
王律师
Primary法律从业者 · 日常监控
“每天早上打开工具,一键查完所有关联公司的被执行信息,3 分钟搞定以前要花半小时的工作。”
每日监控 20+ 家关联公司执行状态,关注新增案件、撤销记录,需要快速导出报告给客户。
合规团队
Secondary企业法务 · 定期审查
“批量导出 Excel 报告直接发给客户,省去了手工整理表格的时间。”
定期对合作伙伴进行尽职调查,需要结构化的执行信息报告和历史变更追踪。
技术选型演变
经过三轮技术选型,最终确定了轻量高效的 Flask + requests + ddddocr 方案。
ChromeDriver 版本匹配问题频繁,浏览器驱动维护成本高,不适合工具分发
macOS 上 pythonnet 安装失败,跨平台兼容性差
纯 HTTP API 调用 + 浏览器展示,轻量高效,跨平台零依赖
Python 3.14
后端 + 查询引擎 + 打包
Flask 3.0
Web 服务器 + API 路由
ddddocr
验证码 OCR 自动识别
系统架构
三层架构:Flask Web 服务器 → 查询引擎 → 中国执行信息公开网 API,支持桌面端打包分发。
Web UI (index.html)
Vuesax 风格 · Protocol 背景 · 一键查询 · 详情弹窗 · Excel 导出
Flask Server (app.py)
REST API · 批量调度 · 历史对比 · Excel 生成 · WAF 退避
查询引擎 (query_execution.py)
Session 管理 · 验证码获取/识别 · 搜索/翻页 · 详情解析
核心功能设计
从验证码自动识别到批量查询导出,覆盖法律从业者日常合规监控的完整工作流。
验证码自动识别
集成 ddddocr OCR 引擎,自动获取并识别执行信息网的图形验证码。支持验证码复用机制 — 搜索成功后缓存验证码,详情查询首次尝试复用,避免频繁获取触发 WAF。
批量查询与导出
支持多行输入批量查询,异步后台执行,实时进度条反馈。查询完成后自动生成格式化 Excel 报告,包含新增/撤销状态标记和条件格式。
历史变更追踪
每次查询自动与上次结果对比,标记「新增」和「撤销」案件。历史数据持久化存储,每日打开即可看到变化。
WAF 智能规避
内置多层 WAF 防护策略:请求间隔随机化(5-8s 详情 / 15-25s 公司间隔)、指数退避重试(最多 3 次)、冷却等待机制。
查询流程
初始化 Session
GET 首页建立连接
等待 2s 避免 WAF
验证码识别
获取图片 → ddddocr
AI 自动识别
搜索 + 翻页
POST 搜索请求
自动翻页获取全部
去重 + 对比
复合键去重
与历史记录对比
结果展示
标记新增/撤销
支持详情弹窗
WAF 防护与请求调度
中国执行信息公开网部署了 Web 应用防火墙,请求过频会触发临时 IP 封锁(HTTP 400)。设计了多层防护策略确保稳定运行。
请求间隔随机化
详情查询 5-8 秒随机间隔,公司间查询 15-25 秒间隔,搜索前 1 秒冷却,避免固定节奏被识别为机器人。
指数退避重试
触发 WAF 后采用指数退避策略(8s → 16s → 32s → 上限 90s),最多 3 次重试,自动恢复查询。
验证码复用机制
搜索成功后缓存验证码,详情查询首次尝试复用。减少 50% 的验证码请求量,降低被 WAF 标记的风险。
关键调度参数
界面设计
采用 Vuesax 设计系统风格 + Protocol TailwindUI 背景图案,兼顾专业感与现代美感。
设计原则
采用 Vuesax 设计系统 的圆角卡片 + 柔和阴影,Protocol TailwindUI 的倾斜网格背景和渐变光晕,营造专业而不冰冷的工具感。
关键交互细节
状态标记:红色左边框 = 新增执行案件(风险信号),绿色左边框 = 撤销(恢复正常),颜色语义对齐法律直觉
渐进披露:列表只显示案号和立案时间,点击才展开详情弹窗
快速芯片:预设常用查询对象,一键填入,减少重复输入
UI 演变历程
设计系统
案件雷达 Design System
Vuesax + Protocol TailwindUI · 统一视觉语言
Color Tokens
Buttons
Status Tags
Typography
页面标题 H1
卡片标题 H2
正文描述 Body
标签 / 徽章 Label
截图留痕功能
NEW法律从业者需要将查询结果截图作为工作留痕证据提交。一键查询 + 自动生成符合法律工作留痕标准的截图,替代手工截图流程。
“不行,这是用户提交工作留痕的重要证据。万一渲染结果有差异,甚至不好确定这个工具是不是百分百与官网查询结果一致。”
— 用户反馈,彻底改变了截图的技术方向
设计演进 · 五个版本
截图文件只有 90 字节空文件,详情提示"截图文件不存在或已过期"。缓存机制与用户操作流程不匹配。
反思:截图必须是确定性的——点按钮就出图。
采用 Playwright 浏览器自动化引擎,加载执行网真实网页,通过 JavaScript 注入搜索结果数据。截图来源是官网真实 DOM 结构,确保与手工查询结果完全一致。
可信度从"看起来像"提升到"来源真实"。
在触发搜索的同一时刻,后台批量获取所有结果的详情数据。利用验证码一次有效期,一次性拉取所有详情。用户流程从"搜索→等待→查看→再等待→截图"五步简化为"搜索→截图"两步。
截图外观需要让审阅者一眼看出"这是从真实浏览器中截取的"。添加拟真的 macOS 系统菜单栏 + Safari 浏览器工具栏。
macOS 菜单栏 (32px)
Safari 菜单项 · WiFi/电池图标 · 实时系统时间
Safari 工具栏 (42px)
红黄绿按钮 · 地址栏 · 执行网 URL
底部自动裁剪
逐行扫描像素,去除白色空白区域
1920×1080 分辨率
宽屏完整展示执行网红色品牌背景
关闭按钮颜色修正为与官网一致的红色 (#c00)
CSS 注入隐藏"关联信息"行,与官网最新版保持一致
去重逻辑从 caseCode|cardNum 复合键改为仅用 caseCode(案号)
单条截图失败时显示后端具体错误信息("验证码过期"、"网络超时"等)
设计决策矩阵:效率 vs 可信度
| 决策点 | 效率方案 | 可信度方案 | 最终选择 |
|---|---|---|---|
| 截图来源 | 工具界面截图 | 执行网原网页截图 | 原网页 |
| 详情获取 | 用户点击时实时获取 | 搜索时批量预获取 | 批量预获取 |
| 浏览器框架 | 不加 | 加菜单栏 + 工具栏 | 完整框架 |
| 系统时间 | 不显示 | 显示截图时刻时间 | 实时显示 |
| 截图分辨率 | 标准 1280px | 宽屏 1920px | 1920×1080 |
| 菜单栏高度 | 真实 22px | 放大保证可读性 | 32px 折中 |
设计原则
在不影响截图可信度的前提下优化效率。任何可能让审阅者质疑截图真实性的妥协都不做。
V4 界面预览 · 截图留痕功能
截图原网页按钮
查询结果区域新增黄色「截图原网页」按钮,点击即生成带 macOS 菜单栏 + Safari 工具栏的可信截图
单条详情截图
每条记录详情弹窗底部同样提供「截图原网页」按钮,支持单条记录独立截图
批量预获取详情
搜索时一次性拉取所有结果详情,无需逐条点击查看,验证码仅需通过一次
导出成果 · Excel 报告
批量导出的 Excel 报告,包含查询公司、状态、被执行人、身份证号、案号、执行法院、立案时间、执行标的等完整字段
已做脱敏处理最终功能形态
搜索结果截图
一张完整的截图包含(自上而下):
详情截图
在搜索结果页的基础上,叠加显示详情弹窗:
成果与反思
验证码识别成功率
ddddocr OCR 引擎
效率提升
23 家公司一键完成
截图版本迭代
从空文件到可信证据
WAF 封锁(正常使用)
智能调度策略有效
关键 Bug 修复
dePartyCardNum 是加密令牌不是身份证号
搜索结果中的 dePartyCardNum 字段是服务端生成的加密 Session 令牌,需同时传递 cardNumNewDel 和 dePartyCardNumNewDel 两个参数。
终本案件详情页 HTML 结构不同
普通详情包含 pnameDetail 元素,终本案件包含 zbTbody 表格。需要两种解析器分别处理。
结果去重 — 案号唯一键
最终改为仅用 caseCode(案号)去重,与原网页行为一致。截图章节 V5 中有完整的去重逻辑演进记录。
设计方法论
用户反馈驱动的渐进式设计 — 截图功能的五个版本迭代印证了这个原则:每个改进都来自真实测试中的问题,而非设计假设。从空文件到可信证据链,五次迭代逐步逼近理想状态。
真实性优先 — 在“看起来像”和“来源真实”之间,始终选择后者。法律证据场景下,截图的可信度优先级高于一切效率优化。
效率 vs 可信度的平衡 — 详情数据批量预获取(一次验证码有效期拉取所有详情)是在不损害可信度的前提下优化效率的典型案例。
技术洞察
政务系统的 WAF 防护是自动化工具的核心挑战,随机间隔 + 指数退避 + 验证码复用三层策略能有效规避封锁。
dePartyCardNum 这类看似 ID 实为加密令牌的字段设计,体现了政务系统对数据安全的重视。
法律从业者关心的不是“有什么”,而是“变了什么” — 历史变更追踪是用户最需要的功能升级。
