# py-area **Repository Path**: chenbool/py-area ## Basic Information - **Project Name**: py-area - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-28 - **Last Updated**: 2026-04-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 中国行政区划爬虫 从国家统计局网站爬取中国行政区划数据的Python爬虫工具。 ## 项目简介 | 项目 | 说明 | |------|------| | 数据来源 | 国家统计局 (stats.gov.cn) | | 数据层级 | 五级行政区划 | | 数据库 | SQLite | | 编程语言 | Python 3 | ## 功能特性 | 特性 | 说明 | |------|------| | 多层级爬取 | 省/直辖市 → 市 → 区/县 → 乡镇/街道 → 村/社区 | | 断点续传 | 通过 current.json 记录爬取位置,异常中断后可继续 | | 三种模式 | 单线程、多线程(gevent)、全量爬取 | ## 安装 ```bash pip install pipreqs pipreqs . --encoding=utf8 --force pip install -r requirements.txt ``` ## 运行 | 命令 | 说明 | |------|------| | `python app.py` | 单线程版本(默认只爬取到4级乡镇) | | `python "app - 多线程.py"` | 多线程版本(使用gevent协程并发) | | `python app-all.py` | 全量版本(包含5级村/社区数据) | ## 数据结构 数据库表 `main` 字段说明: | 字段 | 类型 | 说明 | |------|------|------| | id | INTEGER | 主键,自增 | | title | TEXT | 地区名称 | | pid | INTEGER | 父级ID(0表示顶级) | | code | TEXT | 行政区划代码 | | href | TEXT | 详情页链接 | | upTime | REAL | 更新时间戳 | | upDate | TEXT | 更新日期 | | level | INTEGER | 行政区划级别 | 行政区划级别对照: | level | 级别 | 示例 | |-------|------|------| | 1 | 省/直辖市 | 北京市、上海市 | | 2 | 市 | 北京市、杭州市 | | 3 | 区/县 | 西城区、西湖区 | | 4 | 乡镇/街道 | 西单街道、文新街道 | | 5 | 村/社区 | 蒋村社区、曙光社区 | ## 项目结构 ``` py-area/ ├── app.py # 单线程版本 ├── app - 多线程.py # 多线程版本(gevent协程) ├── app-all.py # 全量版本(包含5级数据) ├── db.db # SQLite数据库 ├── current.json # 爬取进度记录 ├── main.sql # 数据库初始化SQL ├── requirements.txt # Python依赖 └── README.md # 项目说明 ``` ## 依赖包 | 包名 | 版本 | 用途 | |------|------|------| | requests | 2.23.0 | HTTP请求 | | beautifulsoup4 | 4.9.3 | HTML解析 | | records | 0.5.3 | 数据库操作 | | gevent | 21.1.2 | 协程并发 |