立项背景:医保定点机构数据分散在各地政务平台,查询页面为动态渲染且分页较深,人工整理效率低、易漏录,无法满足行业分析对数据完整性及准确性的要求。
功能目标:构建覆盖多省份政务站点的定点医疗机构自动采集系统,实现机构名称、医保区划、机构等级、信用代码、地址等核心字段的批量结构化落库。
核心模块:①调度模块:配置驱动的任务分发与页码范围控制;②采集模块:浏览器渲染结合接口截获的双通道取数;③清洗模块:字段对齐、去重、空值统计;④导出模块:Excel/CSV/TXT 多格式输出并附数据校验报告。
业务流程:用户配置目标站点与字段 → 系统自动翻页采集 → 双数据源交叉校验合并 → 异常增量补抓 → 输出成果与质量报告,全流程无需人工干预。
整体架构:分层设计,调度层基于配置文件驱动;采集层采用 Playwright 无头浏览器渲染动态页面,同时监听 XHR 请求直接截获 JSON 接口数据,相比纯 DOM 解析效率提升约 3 倍;处理层使用 Pandas 做字段映射与清洗;导出层支持多格式并附带条数、空值率、重复率校验报告。
量化结果:单站点 10 页 100 条数据采集加清洗全流程耗时约 40 秒,字段完整率 100%,区划代码与机构名称双源核对一致率 100%,支撑后续万级数据的规模化扩展。
难点与解决:①目标站 JS 深度混淆,静态分析成本高,改用运行时接口截获方案绕过;②部分页面区划名称与接口返回不一致,通过 DOM 与接口双源交叉比对解决;③浏览器实例偶发崩溃导致任务中断,增加增量保存与断点续抓机制,保证任务可恢复、数据不丢失。