From 32a2a18aaba66fcd72044baeb231007679872941 Mon Sep 17 00:00:00 2001 From: wendell <727169395@qq.com> Date: Tue, 7 May 2019 19:26:00 +0800 Subject: [PATCH] Update README.md --- README.md | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 92 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a06b4d1..21ee6a6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ # area-china + * 这是一个基于Python语言编写的爬虫项目,针对中国省市区以及镇乡共5级行政区域数据的获取并建库 * 数据来源于国家统计局的统计用区划代码和城乡划分代码,每一年都会统计并发布上一年的数据 -* 统计用区划代码和城乡划分代码的区划范围,是国家统计局开展统计调查的区划范围。未包括我国台湾省、香港特别行政区、澳门特别行政区 +* 默认已经获取了2018年的5级行政区域全量数据,在项目的result目录里,结果类型有导出的excel文件与mongo数据库备份文件 +* 统计用区划代码和城乡划分代码的区划范围,是国家统计局开展统计调查的区划范围 +* 数据不包括我国台湾省、香港特别行政区、澳门特别行政区 * 级别 * 一级:省、直辖市、自治区 * 二级:地级市 @@ -10,13 +13,100 @@ * 五级:村、居委会 * 本项目仅做学习用途 +# 项目结构 +area-china + - result (可用结果,《2018年统计用区划代码和城乡划分代码(截止2018年10月31日)》) + - excel (Excel结果文件,内容为JSON格式) + - mongo (MongoDB数据库结果文件,可采用命令进行数据恢复) + - mongorestore -h <:port> -d dbname + - source (程序源码目录) + - 若需重新获取数据,运行该目录下的程序即可 + +# 数据结果统计 +| 级别 | 数量 | 备注 | +| ------------- | ------------- | ------------- | +| 一级 | 31 | - | +| 二级 | 343 | - | +| 三级 | 3282 | - | +| 四级 | 43486 | - | +| 五级 | ****** | - | + +# 数据库 +* 采用MongoDB作为数据库服务,程序运行后自动建立表,简单方便快捷。 # 数据库表及字段说明 -* 表 province (一级:省、直辖市、自治区) +### 表 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 (这个运行时间较长) \ No newline at end of file