简介:本文介绍使用Python,爬取国家统计局网站区划和城乡划分代码数据,并保存为不同的格式。该功能可为电商等行业规范客户邮寄地址的填写提供帮助。数据源和格式行政区划数据取自国家统计局网站(http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/),数据按行政级别由大到下通过链接和纯html文本嵌套呈现。如河北省:第一级 河北省 区划代码13,网页地址 http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/13.html第二级 石家庄市 区划代码1301,网页地址 http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/13/1301.html第三级 长安区 区划代码130102,网页地址 http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/13/01/130102.html第四级 建北街道 区划代码130102001,网页地址 http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/13/01/02/130102001.html第五级 棉一东社区居民委员会 区划代码130102001001获取顶级区域(省/直辖市/自治区,不含港澳台)的地址是 http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/index.html。其中的“2021”代表数据时间版本。区划代码格式定义参见“民政部行政区划规则(https://www.mca.gov.cn/article/sj/xzqh/1980/)”。爬取目标通过Python分析网页,从顶级区域自动识别各级子区域代码和名称,并保存为不同的数据格式,以供其他业务进一步使用。本Python程序可将爬取后的数据另存为html表格文件Excel格式文件sql格式文件json格式文件数据格式文件以河北省为例:文件名中的13是河北省区划代码;文件中ID是自定义的数据主键,2021是数据版本号。html表格文件,文件名 address_model_13.htmlExcel格式文件:文件名 address_model_13.xlsxsql格式文件:文件名 address_model_13.sqljson格式文件:文件名 address_model_13.json。json格式文件是按行政区域的级联形式,不带ID和版本号字段。使用说明Python需要本版3.5以上,且要安装requests,pandas,BeautifulSoup库程序可在命令行直接运行:python AddressUtil.py参数在程序中设置,分别是province:顶级区域代码,province = 0时获取顶级区域数据,可用于测试,减少获取数据等待的时间out_format:输出格式参数取值见源程序程序运行时会打印获取的区域进度和异常出现“request timeout”时说明由于网络问题未获取网页需要重试。本程序设置了三次重试,如三次重试仍未获取,则程序退出,请检查你的网络连接和统计局网站是否有问题。结束语区划代码数据的使用,引用统计局网站原文——“统计用区划代码和城乡划分代码用于统计工作,需要在其他工作中使用时,请务必结合有关实际情况。”本文涉及的Python程序和数据样例可从百度网盘下载https://pan.baidu.com/s/1Jhd_4NPn12WtteOW3IP3AA?pwd=1234 提取码: 1234特别声明:本人保留源程序版权,源程序可供任何人自由使用(包括商业行为),本人不对使用本程序的后果承担任何责任。使用时请标注或保留原作者名:双鱼菜青虫(今日头条账号)。
本文出自快速备案,转载时请注明出处及相应链接。