中国行政区划数据爬取并层级体系与编码标准

中国行政区域划分,既行政区划,大体上分省、市、区县、乡镇街道四级,行政区划的勘界、调整、命名等,由国家各级民政部门负责。

每个月,国家民政部会在官网上公示全部县以上行政区划编码和县以下行政区划变更情况。

每年年初,国家统计局会更新一版统计用区划代码,用于统计调查和专项调查,这套数据的底版使用民政数据,一般是去年九十月份的数据。

这是目前最常用的两套行政区划数据,两者都是完全公开的。

 

一、数据获取

民政部行政区划代码公示网址:www.mca.gov.cn/article/sj/xzqh/2020/

因为是公开数据,我们用3行Python3代码就能获取网页数据,运行脚本,将响应打印到控制台上,可以看出来源数据是表格形式的。

import requests
data=requests.get('http://www.mca.gov.cn/article/sj/xzqh/2020/2020/202003301019.html')
print(data.text)

只要能解析这个响应,就可以把数据获取下来,用BeautifulSoup解析就行,非常简短的一个脚本:

import requests
from bs4 import BeautifulSoup
data=requests.get('http://www.mca.gov.cn/article/sj/xzqh/2020/2020/202003301019.html')
soup=BeautifulSoup(data.text)
table=soup.find('table')
trlist=table.findAll(name='td',attrs={'class':'xl7030721'})
num=len(trlist)
xzqhlist=[]
for i in range(0,int(num/2)):
    code=trlist[i*2].get_text().replace('\xa0','')
    name=trlist[i*2+1].get_text().replace('\xa0','')
    xzqhlist.append(code+':'+name)
print(xzqhlist)

民政局的数据很少,且都公示在一个网页上,从页面复制一下,放到Excel里都行。

 

统计局行政区划代码公示网址:www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/

统计局数据是树状结构,要一个一个点,是比较麻烦,的确需要爬一下。

 

先分析一下各级目录结构。

省级目录:

http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/index.html

只有一个index.html页面。

市级目录:

http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/11.html

11.html是省级编码的前两位。

区级目录:

http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/11/1101.html

11/1101.html的格式是省级编码前两位/区县编码的前四位。

四级目录:

http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/11/01/110101.html

11/01/110101.html的格式是省级编码的前两位/区县编码的3、4位/区县编码的前六位。

五级目录:

http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/11/01/01/110101001.html

11/01/01/110101001.html的格式是省级编码的前两位/区县编码的3、4位/区县编码的5、6位/乡镇街道编码的前九位。

如果不知道行政区划编码是什么,看后文就行。

统计局行政区划编码的网页是个树状结构,点击按钮进入下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值