# 中国统计用区划代码 **Repository Path**: itlookit/china_area ## Basic Information - **Project Name**: 中国统计用区划代码 - **Description**: 全国统计用区划代码和城乡划分代码采集 - **Primary Language**: NodeJS - **License**: MulanPSL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 11 - **Created**: 2023-09-18 - **Last Updated**: 2023-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 中国统计用区划代码 ## 介绍 全国统计用区划代码和城乡划分代码采集 ## 软件架构 - 本项目采用 nodejs + mysql - 当前采集的是最新的全国统计用区划代码和城乡划分代码(会自动检测最新的数据源) - 目标地址 [全国统计用区划代码和城乡划分代码](http://www.stats.gov.cn/sj/) - 项目(V0)创建日期: 2020/08/17 `详情可参见分支2021 的 v0目录` - V1 版本创建日期: 2021/04/28 `详情可见分支2021` - V2 版本创建日期: 2023/06/28 `master分支` ## 说明 - 软件不是很完善,但基本能满足需要。 - 不想自己采集可以直接使用项目中的数据库文件 - `data/area.sql` 省市区三级 (2023-06-28 采集) - `data/area_full.sql` 全量数据 (2023-06-28 采集) - **数据中不包括港澳台地区** - 可将问题提交到 issue - 可加 QQ: `1479221500`,一起探讨交流技术 - 可加群聊天吹水: `320327825` ## 安装教程 1. 创建`msyql`数据库 `china_area`或者其他名字 - 推荐使用`mysql8.0` 或 `mysql5.7` - 使用字符集: `uft8mb4` - 排序规则: `utf8mb4_general_ci` 2. 推荐使用 `yarn` - `npm install -g yarn` - `yarn config set registry https://registry.npmmirror.com` - `yarn` 3. 如果不想使用 `yarn` 也可以使用 `npm` - `npm config set registry https://registry.npmmirror.com` - 也可以用`cnpm`: `npm install -g cnpm --registry=https://registry.npmmirror.com` - `npm install` 或 `cnpm install` 4. 配置一下`config.js` (配置项跟着注释来) 5. 运行 `yarn go` 或 `npm run go` 即可开始采集 ## 使用说明 (如果是 npm,则将 yarn xx 改成 npm run xx) 1. `yarn go` 采集 `省市区` 三个级别 2. `yarn full` 采集 `省市区镇村` 五个级别,全量采集 3. `yarn exp` 采集完成后执行,生成 `json` 文件 4. `yarn exp js` 采集完成后执行,生成 `js` 文件 5. `yarn exp txt` 采集完成后执行,生成 `txt` 文件 6. 2022 年的省市区数据总共 `3711` 条数据,经多次采集测试,最快用时: `41.63秒` 7. 2022 年全量数据共 `664476` 条数据,采集用时: `9666.50秒` 大约 `2小时41分钟` ## 注意事项 1. 采集前请检查`config.js`中`TB`是否修改,默认会继续往后面添加数据,建议使用空表。 ## 更新日志 ### V2.1 - 时间: 2023/06/29 - 内容: - 采集全量数据 `data/area_full.sql` ### V2.0 - 时间: 2023/06/28 - 内容: - 官网改版了,更新采集源链接和采集规则 - 改用 yarn - 优化使用方法,简化命令 ### V1.2 - 时间: 2022/01/14 - 内容: - 更新 2021 年数据采集规则: 数据编码由 gb2312 改为 utf8 - 数据库存储的城市编码默认改为长编码。由于某些地区直接跳过了第三级导致短码一样(广东中山、广东东莞,海南儋州等) - 2021 年三级数据采集为 100s 左右,共 3717 条 - 2020 年的数据已转移到了 data/2020 中,2021 年数据请自行采集生成 ### V1.1 - 时间: 2021/12/23 - 更新: - 新增生成 json 和 js 文件 ### V1.0 - 时间: 2021/04/28 - 更新: - 只需要创建数据库,配置表名会自动检测并创建表(如果表已经存在,会继续执行) - 优化了 got 请求,加入随机 UA 和伪造随机 ip(不知道有没有啥效果) - 采集比上一版本更加稳定 - 会自动检测最新的数据源(上一版本只能采集 2019 年,需要手动修改链接) - 将数据库操作模块由`msyql`换成`kenx + mysql2`(用起来简单很多) - 缺陷: - 如果采集中断开,无法在断开的位置采集,期待下次优化 - 由于是逐条采集,4 级和 5 级的数据量比较多,所消耗的时间有点多,或许值得等待,但如果中途出错,就难受了 - 日志和报错的记录还不太完善(没啥空弄) ### V0.3 2020/08/17 23:00:00 1. 将 request 全部换成 got 2. 修复已知 bug ### V0.2 2020/08/17 1. 加入重试,否则会出现请求失败导致数据不全 2. 如果是<3 级的数据, 区域代码只存储前面 6 位数 ### V0.1 2020/08/17 1. 基本功能 2. 采集数据存储到 `msyql`