关于省市区三级联动处理逻辑(存储到sql数据库)

关于这块的处理刚开始的时候没有头绪去处理他,然后我就在网上百度,百度了很久

没有发现合适的数据,总担心会少,所以最佳的还是用民政部数据,所以我只能给你们提供一个逻辑了

我数据库用的mysql,根据你的需求来,我在云盘里转储了一sql文件,你有需要可以下载

2021年的数据

我用阿里云盘分享了「RegionAllData.sql」,你可以不限速下载
复制这段内容打开「阿里云盘」App 即可获取
链接:https://www.aliyundrive.com/s/LGSpmff4ER1

我们这里使用的是中华人民共和国民政部的省市县三级数据需要用到爬虫

省市地区数据地址:http://www.mca.gov.cn/article/sj/xzqh/1980/

大体处理逻辑为你可以先用爬虫爬下来这个网页,然后数据结构是tr,td的table表格,如图所示

 

我们可以把这个网页爬取下来然后

我们定义一个存储数据的类,结构如下

private static class Area {

        // 区域码
        private String code;

        // 区域名称
        private String name;

        // 父级
        private String parent;

    }

 爬取之后处理table里面的数据,把空的处理掉,处理成能存储到我们定义的类的格式,然后我们会

发现他们的层级结构是省级之下的前两位一样,市级和区级的前四位一样,省级以四个0结尾,省级以两个0结尾

然后我们就可以先判断这各地区是否包含两个0,包含父级就先统一刷成市级的先除一百在乘一百就是了,

然后就判断是否包含四个0父级编码包含就刷成省级的先除一万再乘一万结果就是该地区的父级编码

然后对这直辖市后期进行特殊处理,

原文是java写的,如果你是java工程师可以直接看

原文参考:https://www.shangmayuan.com/a/809129c38ac44e6d9e5e589d.html

posted @ 2021-10-18 14:58  看花人墨客  阅读(1016)  评论(1编辑  收藏  举报