在gis的开发中,经常会用行政区划数据,按照国家的编制,每个行政区划都有一个编码,如何获取这个对应的数据,国家统计局每年都会更新全国各省市、区县、乡镇的信息及编码,提供的方式是html网页形式,可以使用代码进行信息的爬取。
国家统计局行政区划网址(历年):
http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/
爬取方式
首先对行政区划信息的网页进行分析,使用 chrome或者其他浏览器的开发者工具,查看网页的源码,省级的信息,有名称和下级行政区划的网页链接,如下图:
市级的信息,同样是名称和行政区划编码,如下图:
同样的原理,可以查看区县、乡镇、社区村的名称和链接地址。
爬取使用类库(nodejs)
使用nodejs进行行政区划网页信息爬取的时候,使用以下几个关键的类库:
axios 用来请求网页的前端类库,将网页信息爬取下来;
iconv-lite 网页编码是gb2312,直接用axios返回字符串,会出现乱码的情况,需要转换一下;
cheerio 网页dom操作类库,cheerio是jquery核心功能的一个快速灵活而又简洁的实现
使用axios按照url,以arraybuffer的形式将网页请求下来,使用icon-lite以gb2312编码进行字符串转换,使用cheerio将字符串转换dom形式进行操作。