Files
area-china/README.md
2019-05-08 10:39:08 +08:00

113 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# area-china
* 这是一个基于Python语言编写的爬虫项目针对中国省市区以及镇、街道、村、居委会等共5级行政区域数据的获取并建库
* 数据来源于国家统计局的统计用区划代码和城乡划分代码,每一年都会统计并发布上一年的数据
* 默认已经获取了2018年的5级行政区域全量数据在项目的result目录里结果类型有导出的JSON文件与mongo数据库备份文件
* 统计用区划代码和城乡划分代码的区划范围,是国家统计局开展统计调查的区划范围
* 数据不包括我国台湾省、香港特别行政区、澳门特别行政区
* 级别
* 一级:省、直辖市、自治区
* 二级:地级市
* 三级:市辖区、县(旗)、县级市、自治县(自治旗)、特区、林区
* 四级:镇、乡、民族乡、县辖区、街道
* 五级:村、居委会
* 本项目仅做学习交流用途
# 项目结构
area-china
- result (可用结果,《2018年统计用区划代码和城乡划分代码(截止2018年10月31日)》)
- json (JSON结果文件)
- mongo (MongoDB数据库结果文件,可采用命令进行数据恢复)
- mongorestore -h <hostname><:port> -d dbname <path>
- source (程序源码目录)
- 若需重新获取数据,运行该目录下的程序即可
# 数据结果统计
| 级别 | 数量 | 备注 |
| ------------- | ------------- | ------------- |
| 一级 | 31 | - |
| 二级 | 343 | - |
| 三级 | 3282 | - |
| 四级 | 43486 | - |
| 五级 | 662814 | - |
# 数据库
* 采用MongoDB作为数据库服务程序运行后自动建立表(collection),简单方便快捷。
# 数据库表及字段说明
### 表 province (一级:省、直辖市、自治区)
| 字段名 | 字段含义 | 备注 |
| ------------- | ------------- | ------------- |
| id | 数据主键 | - |
| code | 统计汇总识别码-划分代码 | - |
| name | 省/直辖市/自治区名称 | - |
| url | 下级链接地址 | 搜索二级时需要 |
| searched | 是否搜索过下级链接地址 | 搜索二级时需要 |
### 表 city (二级:地级市)
| 字段名 | 字段含义 | 备注 |
| ------------- | ------------- | ------------- |
| id | 数据主键 | - |
| code | 统计汇总识别码-划分代码 | - |
| name | 地级市名称 | - |
| province_id | province表主键 | - |
| province_name | 省/直辖市/自治区名称 | - |
| url | 下级链接地址 | 搜索三级时需要 |
| searched | 是否搜索过下级链接地址 | 搜索三级时需要 |
### 表 county (三级:市辖区、县(旗)、县级市、自治县(自治旗)、特区、林区)
| 字段名 | 字段含义 | 备注 |
| ------------- | ------------- | ------------- |
| id | 数据主键 | - |
| code | 统计汇总识别码-划分代码 | - |
| name | 区县名称 | - |
| city_id | city表主键 | - |
| city_name | 地级市名称 | - |
| province_id | province表主键 | - |
| province_name | 省/直辖市/自治区名称 | - |
| url | 下级链接地址 | 搜索四级时需要 |
| searched | 是否搜索过下级链接地址 | 搜索四级时需要 |
### 表 town (四级:镇、乡、民族乡、县辖区、街道)
| 字段名 | 字段含义 | 备注 |
| ------------- | ------------- | ------------- |
| id | 数据主键 | - |
| code | 统计汇总识别码-划分代码 | - |
| name | 乡镇名称 | - |
| county_id | county表主键 | - |
| county_name | 区县名称 | - |
| city_id | city表主键 | - |
| city_name | 地级市名称 | - |
| province_id | province表主键 | - |
| province_name | 省/直辖市/自治区名称 | - |
| url | 下级链接地址 | 搜索五级时需要 |
| searched | 是否搜索过下级链接地址 | 搜索五级时需要 |
### 表 village (五级:村、居委会)
| 字段名 | 字段含义 | 备注 |
| ------------- | ------------- | ------------- |
| id | 数据主键 | - |
| code | 统计汇总识别码-划分代码 | - |
| code_type | 城乡分类代码 | - |
| name | 村居委会名称 | - |
| town_id | town表主键 | - |
| town_name | 乡镇名称 | - |
| county_id | county表主键 | - |
| county_name | 区县名称 | - |
| city_id | city表主键 | - |
| city_name | 地级市名称 | - |
| province_id | province表主键 | - |
| province_name | 省/直辖市/自治区名称 | - |
# 运行程序
* 依赖Python3环境以及MongoDB作为数据库服务
* 环境安装好后建议直接导入项目到PyCharm中运行
* 程序需按如下顺序依次运行:
1. source\area\china\city\ProvinceSpider.py
2. source\area\china\city\CitySpider.py
3. source\area\china\city\CountySpider.py
4. source\area\china\city\TownSpider.py (大概运行一个小时左右跑完)
5. source\area\china\city\VillageSpider.py (这个运行时间较长,晚上跑起第二天早上来看一般能够跑完)
* 如需更新库则可重新运行本程序,一般情况下一年运行一次即可,运行前先备份原有数据库再删除原有库以免数据重复