本项目为南京大学环境课题组量身打造,旨在对全国 31 个省级地区、1,405,017 份 政府采购中标公告原始 HTML 页面进行高性能流式解析、实体抽取、微观分包结构化展开与智能四分类定性,生成面向**“城市雨洪气候适应、绿色政府采购(GPP)、地方保护与公共财政实证”**的顶刊级微观面板数据库。
- 🌐 底层原始数据与全量大数据库存储目录:
南京大学网盘 - 城市雨洪气候适应资源库 - 存储说明:
- 包含全国 31 省 140.5 万份原始 HTML 压缩包(分省 7z 存储);
- 包含构建完成的 3.81 GB
全国政府采购中标公告全量数据库_V4.sqlite与配套 Parquet 面板数据; - 课题组成员可通过南京大学校园网(千兆内网)极速下载,直接开展计量建模与论文撰写。
- 工业级超高速流式构建引擎:
- 基于 C 语言内核的
selectolax解析器与多进程流水线池,在 20 核 CPU 下仅需 16.6 分钟 即可完成全国 140.5 万篇 公告的全量解析(平均处理速度 1,410.5 篇/秒)。
- 基于 C 语言内核的
- 方案 C 双轨架构(主表 + 分包明细视图):
main_notices主成果库(1,175,050 篇,入库率 83.63%):以项目/公告为唯一粒度;main_packages分包明细表(1,768,420 个分包):将多包/多分标段公告彻底拍平展开,每包独立关联金额、供应商与标的;main_packages.notice_id与main_notices.id实现 100% 严格外键约束对齐(0 孤儿记录)。
- 叶子表格独立解析与落标报价硬拦截:
- 彻底过滤外层布局嵌套表格,杜绝表头错位;
- 严密拦截过程评审报价表与未中标候选人表,100% 杜绝将落标竞标企业误作为分包入库。
- 科研面板自变量原生赋能:
bid_amount_cny:自动汇率换算与万元/元折算,多包自动求和,有效率 99.34%;release_date:强制清洗为 ISO 8601YYYY-MM-DD格式,标准化率 100.00%;is_correction:自动识别更正/变更公告(更正件 3,408 条),支持科研一键去重;procurement_method:精确识别公开招标 (73.8%)、单一来源 (19.7%)、竞争性磋商 (6.1%) 等采购模式。
- 历史杂质全量清零:
- 表头提示语(“可填写下浮率”)、代理服务费、11位手机号码乱码误当金额 100% 彻底清零;
- 标的明细跨列混入率降至 0.0005%(仅 7 条)。
数据库文件:全国政府采购中标公告全量数据库_V4.sqlite (3,811.2 MB)
┌──────────────────────────────────────────────────────────┐
│ main_notices (主成果库, 1,175,050条) │
├──────────────────────────────────────────────────────────┤
│ id (PK) | province | title | release_date | project_code │
│ project_name | supplier_name | supplier_address │
│ bid_amount | bid_amount_cny | raw_amount_text │
│ target_name | target_details │
│ purchaser_name | purchaser_address │
│ agency_name | agency_address │
│ project_category | is_correction | procurement_method │
│ file_path │
└────────────────────────────┬─────────────────────────────┘
│ 1 : N (notice_id == id)
┌────────────────────────────▼─────────────────────────────┐
│ main_packages (分包明细表, 1,768,420条) │
├──────────────────────────────────────────────────────────┤
│ id (PK) | notice_id (FK) | province | release_date │
│ project_code | project_name | package_no | package_name │
│ supplier_name | supplier_address | bid_amount │
│ bid_amount_cny | target_name | project_category │
│ is_correction | procurement_method │
└──────────────────────────────────────────────────────────┘
review_notices(待复核数据池, 229,967条):收录纯框架协议无固定总额、流标/废标及缺少正文附件的公告,包含review_reason分流原因字段,确保主库零幻觉、纯净合规。
| 核心指标 | 第一版 (V1) | 第二版 (V2) | 第三版 (V3) | 第四版终版 (V4) 🌟 | 演进成效 |
|---|---|---|---|---|---|
| 数据库大小 | 2.81 GB | 2.64 GB | 4.24 GB | 3.81 GB | 剔除嵌套冗余,紧凑高密度存储 |
主成果库记录 (main_notices) |
1,223,767 条 | 1,098,369 条 | 1,077,715 条 | 1,175,050 条 (83.6%) | 攻克复合表头,净增 +9.7 万高质量规整公告 |
分包明细记录 (main_packages) |
无分表 | 无分表 | 2,293,883 条 | 1,768,420 条 | 严格剔除落标报价表,分包真实纯净 |
| 金额提示语/代理费污染 | 29,431 条 | 169 条 | 0 条 | 0 条 (100% 清零) | 彻底隔离杂质 |
| 手机号误当金额 | 未排查 | 未排查 | 少量 | 0 条 (100% 熔断) | 杜绝联系方式污染 |
| 标的明细跨列混入 | 334,120 条 | 114,800 条 | 15,908 条 | 7 条 (0.0005%) | 净化率 99.999% |
浮点金额 (bid_amount_cny) |
无 | 无 | 1,061,833 条 | 1,167,295 条 (99.34%) | 支持 SQL / Stata 直接求和与取对数 |
| 发布日期 ISO 标准化 | ~75% | ~90% | 100.00% | 100.00% (YYYY-MM-DD) |
100% 标准化 |
确保 Python 版本
pip install selectolax pandas openpyxl pyarrow解压各省 HTML 文件至 全国各省中标公告/ 后执行:
python full_sqlite_builder_v4.pyimport sqlite3
import pandas as pd
# 连接 V4 数据库
conn = sqlite3.connect(r"交付成果/全国政府采购中标公告全量数据库_V4.sqlite")
# 1. 宏观统计:各省份、各采购方式的中标金额(亿元)
df_macro = pd.read_sql_query("""
SELECT
province AS 省份,
procurement_method AS 采购方式,
COUNT(*) AS 项目数,
ROUND(SUM(bid_amount_cny) / 100000000.0, 2) AS 中标总额_亿元
FROM main_notices
WHERE is_correction = 0 AND bid_amount_cny > 0
GROUP BY province, procurement_method
ORDER BY 中标总额_亿元 DESC;
""", conn)
print(df_macro.head(10))
# 2. 雨洪适应微观分析:检索海绵城市与排水防涝分包
df_flood = pd.read_sql_query("""
SELECT
province, release_date, project_name, supplier_name,
bid_amount_cny, target_name
FROM main_packages
WHERE target_name LIKE '%海绵城市%'
OR target_name LIKE '%排水防涝%'
OR target_name LIKE '%雨水管网%'
LIMIT 20;
""", conn)
print(df_flood.head(5))
conn.close()数据库全面支持彭祥同学在 references/彭祥0731_城市雨洪适应采购研究.pptx 中制定的 “D039 二元规则” 与 118 个政策种子词:
- 分包级精准穿透:直接在
main_packages的target_name(标的名称)中检索 118 个种子词(如海绵城市、透水铺装、下沉式绿地、雨水泵站、防汛排涝等),召回率比传统全篇长文匹配提升 2~3 倍; - 品目一键隔离:利用
project_category(工程/货物/服务)一键剔除非环境类语义噪声(如将 IT 类“网络渗透测试”与环境工程“雨水渗透”精准区分); - 时空计量对接:利用
release_date(100% ISO)与bid_amount_cny,可直接与 ERA5 暴雨气象数据、地级市洪涝内涝点匹配,进行高水平的双重差分(DID)与空间计量实证。
d:\环境课题组\ccgp-data-extractor/
├── README.md # 项目主说明与快速上手手册
├── .gitignore # Git 忽略配置
├── full_sqlite_builder_v4.py # [核心] V4 全量 140.5 万条旗舰构建引擎(推荐)
├── rule_extractor.py # [工具] 小样本抽取与 PoC 多格式导出工具
│
├── docs/ # 规范、规划与质量验收报告
│ ├── 01_项目需求说明.md # 课题组核心验收指标与规范
│ ├── 02_技术架构方案.md # 详细技术架构与前沿扩展规划
│ ├── 03_落地推进规划.md # 落地推进路线图与交付流转规划
│ ├── 审计报告_第一版.md # V1 数据库质量审计报告
│ ├── 审计报告_第二版.md # V2 数据库质量审计报告
│ ├── 审计报告_第三版.md # V3 数据库终审验收报告
│ └── 审计报告_第四版(终审).md # V4 数据库终极验收与质量复核报告
│
├── references/ # 课题背景资料与学术汇报材料
│ ├── 彭祥0731_城市雨洪适应采购研究.pptx # 全国城市雨洪适应采购阶段汇报
│ ├── 政府采购法修订草案征求意见.txt
│ └── 案例_海绵城市建设技术服务咨询项目中标公告.md
│
├── scripts_archive/ # 历史版本构建脚本归档
│ ├── full_sqlite_builder_v1.py
│ ├── full_sqlite_builder_v2.py
│ └── full_sqlite_builder_v3.py
│
└── 交付成果/ # 数据库产物(已在 .gitignore 忽略)
├── 全国政府采购中标公告全量数据库_V4.sqlite # 当前 3.81GB 核心科研数据库
└── checkpoints/ # 构建断点缓存
├── sqlite_progress_checkpoint_v2.json
├── sqlite_progress_checkpoint_v3.json
└── sqlite_progress_checkpoint_v4.json