最全最新中国省,市,地区json及sql数据
Branch: master
Clone or download
Latest commit 440e7db Feb 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
js update Feb 11, 2019
json add town json Feb 11, 2019
location-demo fix value change change dropdown text Apr 6, 2017
mysql update Feb 11, 2019
src update Feb 11, 2019
.gitignore update Feb 11, 2019
LICENSE Initial commit May 19, 2015
README.md Update README.md Feb 12, 2019
build.sh update Apr 1, 2017
main.js add town json Feb 11, 2019
makedata.py update Feb 11, 2019
package.json update town data Feb 3, 2019
pull.js update Mar 30, 2017
yarn.lock finish 14000 Feb 6, 2019

README.md

china_regions

最全最新中国省,市,地区 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 格式
├── postgresql      # postgresql 格式

直接拷贝 json 和 es6 文件可直接使用,也可以根据对应的语言生成不同的模块。

Village 数据文件特别大,默认不包含在仓库中,可以 clone 仓库,在 src 中解压 village 的压缩文件,然后执行 python makedata.py

如何更新到最新国标

仓库中的现在的数据是根据最新国标生成,如果在使用中发现国标有变动,可以手动进行更新,需要有 node8 或更高环境:

  1. git clone 本仓库
  2. yarn install 或者 npm install
  3. 移除 src 目录下的 json 文件:
    ├── city.json
    ├── country.json
    ├── province.json
    ├── source.json
    ├── town.json
    └── village.json
  1. 打开 main.js 文件,取消对 main 函数执行的注释,开始执行 node main.js,一般情况下可以顺利爬取到 province、 city、country 的信息
  2. 利用已经爬取的 province、city、country 开始同步其他行政区域的信息,注释掉 main 函数根据需要分别打开 pullTownDataSync、pullVillageDataSync 爬取其他行政区域的信息,注释事项见函数注释
  3. 最后执行 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

反馈

如果国标页面 html 结构发生变化,请提 issue。

更新记录

2019.2.11

  • 更新数据抓取方式,使用 nodejs 抓取
  • 更新数据到最新的 2018 国标
  • 移除对 sqlite 以及 postgresql 的