1. 立项背景和目标
为满足公司对多源异构数据(如天眼查、招标公告等)的自动化采集与标准化治理需求,本项目旨在构建一套稳定可靠的数据管道。主要目标是实现从数据自动采集、清洗、入库到质量监控的全流程自动化,为上层业务分析提供高质量的数据基础。
2. 软件功能、核心功能模块的介绍
系统主要包括三大模块:1)自动化采集模块:基于Playwright等工具,实现多平台数据的定时爬取和环境迁移,成功交付超12,000条完整公告数据;2)ETL与数据治理模块:设计标准化数据表20余张,并开发智能清洗算法,将核心字段覆盖率从0.37%提升至99.58%,修复无效数据300余条;3)运维监控模块:通过Docker部署和飞书机器人,实现容器健康状态定时告警。
3. 业务流程、功能路径描述
采集脚本定时启动 → 从目标网站获取原始数据 → 进入ETL清洗层,根据预设规则进行数据抽取、清洗与标准化转换 → 清洗后的数据写入PostgreSQL标准化表 → 质量监控脚本每日检查数据覆盖率等指标 → 结果通过飞书推送给团队。整个流程无人值守,异常问题通过脚本自动修复或报警。
1. 整体架构和设计思路
项目采用经典ETL架构,分为采集层、清洗层、存储层和监控层。采集层使用Playwright和BeautifulSoup,解决JS动态渲染和反爬问题;清洗层基于Python脚本实现,存储层采用PostgreSQL,并设计了"城市-线路-站点"三级视图;监控层通过Docker部署,用飞书Webhook进行异常告警。
2. 我负责的模块和量化成果
独立负责全流程开发。采集端,修复了一个涉及Playwright驱动依赖、进度文件解析和环境迁移的爬虫项目,完整交付了12,138条招标公告及配套PDF文件。ETL端,设计了20余张标准化数据表,并开发了正则匹配+关键词权重算法修复315条无效标题。治理端,编写的数据清洗脚本将核心字段覆盖率从0.37%提升至99.58%,处理了11万余条记录。运维端,实现了6个Docker容器的健康监控自动推送。
3. 遇到的难点和解决方案
难点一:中广核爬虫环境迁移后驱动缺失、进度文件越界导致崩溃。解决:逐一排查依赖,修正文件解析逻辑,增加异常捕获。难点二:原始数据大量缺失,如location字段覆盖率仅0.37%。解决:编写清洗脚本,用region字段进行匹配填充,并建立数据质量监控防止再次恶化。难点三:分布式场景下ID重复。解决:设计类雪花算法,生成带地域标识的唯一ID。