为什么做它
矿业权出让公告分散在自然资源部、三十多个省级自然资源厅和各地公共资源交易平台,格式各异、更新不定。过去要判断"最近有哪些值得看的项目",只能每天挨个网站翻,一两个小时就没了。
这套系统的目标很朴素:每天早上看一份已经筛好的日报,5 分钟内决定今天关注哪几个项目。
它是怎么工作的
整套流程跑在本机 Windows 上,由计划任务每天触发:
- 采集:37 个自动采集源,抓取列表页和详情页;
- 结构化:从公告正文里抽取矿种、面积、起始价、保证金、报名截止等字段,并做分级与评分;
- 生成:输出 Excel 台账(多 sheet)、手机端 HTML 日报、推送文案;
- 发布:生成纯静态网站
dist/,通过 FTP 自动上传到站点的/kyq/目录; - 推送(可选):企业微信 / 钉钉机器人 / Server酱 / 邮件,配置 webhook 即开启。
网站部分:矿业权公告

这个静态页是项目的"展示层":
- 概览统计:今日新增、公告数量、重点推荐、7 天内截止、成交结果;
- 截止提醒:未来 7 天要报名/交保证金的项目,按截止日排序;
- 公告列表:关键词搜索、矿种/省份联动筛选、级别筛选、排序、分页;
- 详情弹窗:结构化字段 + 公告正文 + 官网原文链接;
- 矿种 / 省份分布:点击胶囊直接筛选;
- 导出 CSV、字号切换、手机端卡片式布局。
2026 年 11 月做了一次改版:视觉与站点统一(浅色极简、白色圆角卡片、同款导航与页脚)。
技术实现
- Python 3,标准库为主,
openpyxl可选(只用于 Excel 日报); - SQLite 存公告库(约 9MB),字段化存储,支持增量去重;
- 适配层配置化:每个源在
config/sources.json里描述列表地址、选择器、分页、日期正则、详情规则,新增源主要改配置; - 纯静态导出:
index.html内联数据(约 500KB),配data.json、status.html、每日归档;无服务端依赖,放在任何静态空间都可以; - FTP 发布:每次覆盖 6 个文件,支持
--dry-run预检。
部署现状与后续
- 目前是本地采集 + 自动上传:Windows 计划任务 +
deploy.auto_publish=true; - 如果想彻底脱离本地电脑,有两个可行方向:轻量应用服务器(cron 跑 Python,采集后 FTP 推送)或函数计算 FC(定时触发,免运维)。
局限
- 政务网站改版、反爬会导致个别源失败,
status.html里能看到每个源的健康度; - 公告正文抽取可能不完整,报名条件、截止时间、费用等关键信息务必回官网核对;
- 静态页每天更新,不是实时行情,适合"每天早上看一眼"的节奏。
结语
它的价值不在技术多复杂,而在于把"每天翻三十个网站"变成"看一份已经整理好的日报"——省下来的时间,拿去做判断。
评论 暂无评论