公开结建公示采集、面积剥离与聚合)
㊗️本期内容已收录至专栏《Python爬虫实战》,持续完善知识体系与项目实战,建议先订阅收藏,后续查阅更方便~㊙️本期爬虫难度指数:⭐⭐⭐⭐⭐(专家级)🉐福利:一次订阅后,专栏内的所有文章可永久免费看,持续更新中,保底1000+(篇)硬核实战内容。全文目录:🌟 开篇语0️⃣ 前言(Preface)1️⃣ 摘要(Abstract)2️⃣ 背景与需求(Why)2.1 为什么值得做这类数据2.2 本文目标数据2.3 为什么“人防面积”是最难的字段3️⃣ 合规与注意事项3.1 先检查 robots.txt3.2 控制请求频率3.3 不绕过访问控制3.4 不采集与目标无关的个人敏感数据4️⃣ 技术选型与整体流程(What / How)4.1 静态、动态还是 API?第一种:静态 HTML第二种:动态渲染第三种:浏览器渲染后才能获得内容4.2 本文属于哪一种4.3 为什么选择 Requests4.4 为什么选择 BeautifulSoup + lxml4.5 整体流程5️⃣ 环境准备与依赖安装5.1 Python 版本5.2 建立虚拟环境5.3 安装依赖5.4 requirements.txt5.5 推荐项目目录6️⃣ 核心实现:请求层(Fetcher)6.1 config.py6.2 headers 应该怎么写6.3 使用 Session6.4 timeout 为什么不能省6.5 重试和指数退避6.6 Cookie 是否需要7️⃣ 核心实现:解析层(Parser)7.1 定义数据模型7.2 文本标准化7.3 列表页解析7.4 详情页正文提取7.5 附件发现7.6 Excel 读取7.7 通用键值字段解析7.8 项目名称7.9 建设单位7.10 平时用途7.11 审批日期7.12 真正的重点:人防面积提取7.13 面积单位统一7.14 面积候选模型7.15 正向关键词7.16 负向关键词7.17 候选面积扫描7.18 语义评分函数7.19 这里还有一个隐藏 Bug7.20 加入距离评分7.21 更强的规则:优先字段模式7.22 最终人防面积算法7.23 应建面积和实际面积同时存在怎么办7.24 一个很实用的调试函数7.25 整合字段提取器8️⃣ 数据存储与导出(Storage)8.1 字段设计8.2 为什么保留 source_url8.3 为什么保存证据8.4 CSV 保存8.5 去重策略一:URL 唯一8.6 去重策略二:内容 hash8.7 去重策略三:业务字段8.8 数据清洗8.9 人防面积聚合按开发单位统计按年份统计按月份统计9️⃣ 运行方式与结果展示9.1 完整入口代码9.2 parser.py 完整版本9.3 启动程序9.4 输出位置9.5 CSV 结果示例9.6 输出质量检查🔟 常见问题与排错10.1 403 Forbidden10.2 429 Too Many Requests10.3 不要用代理硬顶限流10.4 HTML 抓到“空壳”10.5 什么时候才用 Playwright10.6 解析突然全部为空10.7 Excel 读不了10.8 中文乱码10.9 面积抓成了总建筑面积10.10 两个人防面积怎么办10.11 同一项目分期审批10.12 同一公告有两个项目1️⃣1️⃣ 进阶优化11.1 先做断点续跑,再做并发11.2 使用 SQLite 保存进度11.3 原始文件不要立即删除11.4 保存 HTML 快照11.5 日志文件11.6 成功率统计11.7 面积异常检测11.8 基于统计分布做异常检测11.9 面积候选全部保存11.10 有限并发11.11 asyncio 什么时候值得上11.12 Scrapy 化11.13 定时任务11.14 Airflow11.15 增量更新11.16 日期和 URL 双保险11.17 内容 hash 版本管理11.18 单元测试:面积识别一定要测11.19 建立人工标注样本11.20 从规则模型进一步升级11.21 为什么规则依旧值得保留11.22 面积聚合时避免重复累计11.23 一个更专业的数据模型11.24 数据质量评分11.25 一个完整的增强版面积抽取器1️⃣2️⃣ 总结与延伸阅读🌟 文末✅ 专栏持续更新中|建议收藏 + 订阅✅ 互动征集✅ 免责声明🌟 开篇语哈喽,各位小伙伴们你们好呀~我是【喵手】。运营社区: C站 / 掘金 / 腾讯云 / 阿里云 / 华为云 / 51CTO欢迎大家常来逛逛,一起学习,一起进步~🌟我长期专注Python 爬虫工程化实战,主理专栏👉 《Python爬虫实战》:从采集策略到