最全最新中国省,市,地区 json 及 sql 数据,自动抓取国标 http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/ 数据,并且自动生成 JavaScript es6 module 以及 sql 数据。
最新国标行政区规划最低到居委会这一级别了,行政区代码代码也变长了,不包含港澳台信息,按需所需不同的版本,见 https://github.com/wecatch/china_regions/releases
http://wecatch.me/china_regions/
数据分 json、es6 module、sql 三种格式存储,es6 module 和 sql 是根据 json 自动生成,json 数据又是根据最新国标生成,
├── js # js module 格式 ├── json # json 格式 ├── mysql # mysql sql 格式
直接拷贝 json 和 es6 文件可直接使用,也可以根据对应的语言生成不同的模块。
Village 数据文件特别大,默认不包含在仓库中,可以 clone 仓库,在 src 中解压 village 的压缩文件,然后执行 python makedata.py
仓库中的现在的数据是根据最新国标生成,如果在使用中发现国标有变动,可以手动进行更新,需要有 node8 或更高环境:
git clone 本仓库
yarn install 或者 npm install
移除 src 目录下的 json 文件:
├── city.json ├── country.json ├── province.json ├── source.json ├── town.json └── village.json
打开 main.js 文件,取消对 main 函数执行的注释,开始执行 node main.js
,一般情况下可以顺利爬取到 province、 city、country 的信息
利用已经爬取的 province、city、country 开始同步其他行政区域的信息,注释掉 main 函数根据需要分别打开 pullTownDataSync、pullVillageDataSync 爬取其他行政区域的信息,注释事项见函数注释
最后执行 python makedata.py
生成各种格式文件
根据 town 爬取的 village 数据非常大,默认情况下不会自动生成 village 的信息,可以根据自己的需要 clone 仓库之后自己生成
行政级别顺序是:province-> city --> country --> town --> village,对应的是:省->市(市辖区)->县(区、市)->镇(街道)->村(居委会)
爬取 village 时由于数据量特别大会导致 nodejs 出现内存泄漏的情况,所以每次增量更新文件时会自动进行文件备份,生成 src/village_backup.json
备份文件不进仓库,最后再手动干预偏移量
village 的数据文件是压缩过的解压执行 tar xvfz village.tar.gz .
默认情况下不生成 village 这个级别的数据,如果需要请执行 makedata.py
如果觉得博客文章对您有帮助,异或土豪有钱任性,可以通过以下扫码向我捐助。也可以动动手指,帮我分享和传播。您的肯定,是我不懈努力的动力!感谢各位亲~