首先要先找到民政局的区划代码地址:http://www.mca.gov.cn/article/sj/xzqh/2020/

这个网址的最后是根据年份来追加的。可以自己获取当前年份份来访问,我们需要的是页面列表的第一条数据链接。民政部的数据有一定的延迟,略滞后于区划调整文件发布时间。

在这里插入图片描述

通过分析可以看出我们需要的链接在一个table标签下的tr标签里面,其中的第二个td标签包含的a标签的href属性就是我们最终要拿到的链接。

不过我是通过另一个页面获取到的,在民政局的官网民政数据选项里:http://www.mca.gov.cn/article/sj/

我们一样可以获取,里面有区划代码的板块,我们要获取的同样是第一条数据。

在这里插入图片描述

我这里直接选取了class="tzggbox_c_b"的div标签来获取a标签的href的属性值。`

String url= Jsoup.connect(Constant.MCA_URL)

.get()

.getElementsByClass("tzggbox_c_b")

.get(2)

.select("a[href]")

.attr("abs:href");

这里我们获得一个html的网页链接,访问这个链接你会发现代码拿到的html页面跟我们最终要进入的页面不一样,再一对比两个链接,也是没有什么关系。最终要进入的页面链接在哪里呢?细心查看代码获取到的html,你会发现里面有个一个script标签包含这样的属性值,这里面包含的链接才是最终的链接指向。

window.location.href="http://www.mca.gov.cn//article/sj/xzqh/2020/202011/202011060901.html";

这个htnl包含很多script标签,需要循环判断一下,同时里面的url需要处理一下域名后面的双斜杠换成单斜杠,不然jsoup会报错。

for (int i=0;i

if(doc.get(i).data().contains("window.location.href=")){

s=doc.get(i).data().split("=")[1];

s=s.replace("\"","");

s=s.replace(";","");

}

}

接下来就到了真正要解析的页面了,我们要的数据同样是在table标签的tr标签里,但是当你去取的时候发现数据不全,这是因为jsoup通过get取的数据大小有限制,我们需要通过maxBodySize方法设置一下。

tr= Jsoup.connect(s).maxBodySize(Integer.MAX_VALUE)

.get()

.select("table")

.get(0)

.select("tr");

每个tr标签对应的一行数据,里面有多行的td标签

在这里插入图片描述

到这里你可能又要问了,省市区怎么区分的,看这个网页的结构,你就能看出差异,市级比省级缩进了一点,县级又比市级缩进了,通过网页源码也可以看出,省市用的td标签里的class属性值是一样的,都是class="xl7025509",但是市级比省级多了一个span标签,而县级的class属性值跟省市是不一样的,class="xl7125509",同样也有一个span标签,这样就很好区分了。

if(cityInfo.hasClass("xl7025509")){//省市

if(!cityInfo.select("span").isEmpty()){//市

}else{//省

if(cityName.endsWith("市")){

}

}

}else if(cityInfo.hasClass("xl7125509")){//区县

if(!cityInfo.select("span").isEmpty()){

}

这里要注意一下,因为四个直辖市的原因,直辖市是省级,下面直接就是县级了,可能需要自己去生成一个市级的。另外民政部在页面最后面注明了:台湾省、香港特别行政区和澳门特别行政区暂缺地市和区县信息。

到这里基本主要的逻辑就已经讲完了,代码已经上传到了我的github,这里附上Demo源码,另外根据获取的信息,我还制作了省市县的三级结构Json文件方便大家直接使用,如果有帮助到大家,希望可以给个Star,谢谢。

android 行政区域,最新Android使用Jsoup获取省市县行政区划代码行政编码(附源码与Json数据)...相关推荐

  1. 非对称加密实战(一):JDK生成keystore获取公钥私钥及代码验证【附源码】

    目录 使用说明 非对称加密 生成keystore文件 公钥私钥互相解密 获取fd-alias.keystore中的公钥私钥 使用生成公钥私钥进行解密 源码地址 使用说明 非对称加密 非对称加密算法主要 ...

  2. Android 音视频深入 十七 FFmpeg 获取RTMP流保存为flv (附源码下载)

    项目地址 https://github.com/979451341/RtmpSave 这个项目主要代码我是从雷神那弄过来的,不愧是雷神,我就配个环境搞个界面就可以用代码了. 这一次说的是将RTMP流媒 ...

  3. 【Android App】物联网实战项目之自动驾驶的智能小车(附源码和演示 超详细)

    需要源码请点赞关注收藏后评论区留言私信~~~~ 当今社会正在步入一个万物互联的时代,它的技术基石主要来自5G.物联网和人工智能. 三者融合产生了许多新产品,其中最璀璨的当数自动驾驶的电动车:它汇聚了最 ...

  4. 手把手教你使用Python网络爬虫获取B站视频选集内容(附源码)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 位卑未敢忘忧国,事定犹须待阖棺. ...

  5. 【Android App】GPS获取定位经纬度和根据经纬度获取详细地址讲解及实战(附源码和演示 超详细)

    需要全部代码请点赞关注收藏后评论区留言私信~~~ 一.获取定位信息 开启定位相关功能只是将定位的前提条件准备好,若想获得手机当前所处的位置信息,还要依靠下列的3种定位工具. (1)定位条件器Crite ...

  6. Android 百度地图之全局搜索周边搜索全国搜索城市路线规划(升级版附源码)

    这个是今年3月份做的,拿出来分享哈,之前的一篇结构单一,现在这个新增路线规划: 路线1:无地铁 路线2:时间快 路线3:少换乘 路线4:少步行 如下图: 2.地点搜索(局部搜索)如下图: 3 定位功能 ...

  7. 【Android App】实战项目之仿拼多多的直播带货(附源码和演示 超详细必看)

    需要源码请点赞关注收藏后评论区留言私信~~~ 近年来电商业态发生了不小的改变,传统的电商平台把商品分门别类,配上精美的图文说明供消费者挑选,新潮的电商平台则请来明星网红,开启直播秀向广大粉丝推销商品, ...

  8. Android 实现视屏播放器、边播边缓存功能,附源码

    热文导读 | 点击标题阅读 [墙裂推荐]AndroidVideoCache:实现视屏播放边下边播 吊炸天!74款APP完整源码! 一份年薪30万的Android面试宝典,附答案 来源:http://w ...

  9. 【Android App】给三维的地球仪贴上动物贴纸实战(附源码和演示 超详细必看)

    需要源码和图片集请点赞关注收藏后评论区留言~~~ 一.纹理贴图 给三维物体穿衣服的动作,通常叫做给三维图形贴图,更专业地说叫纹理渲染. 渲染纹理的过程主要由三大项操作组成,分别说明如下: (1)启用纹 ...

  10. 【Android App】实战项目之仿微信的附近的人(附源码和演示 超详细)

    需要全部源码请点赞关注收藏后评论区留言私信~~~ 艺术家常说"距离产生美",其实距离近才是优势,谁不希望自己的工作事少钱多离家近呢?不光是工作,像租房买房.恋爱交友,大家都希望找个 ...

最新文章

  1. 【转】卡尔曼滤波算法详细推导(相当值得一看)
  2. 【数据结构与算法】图论基础与图存储结构
  3. cacti 安装过程笔记
  4. Ant远程部署到Tomcat
  5. c语言 交互式电子白板案例,交互式电子白板教学案例
  6. java位操作_关于java按位操作运算
  7. F12 界面:请求响应内容 Preview 和 Response 不一致、接口返回数据和 jsp 解析到的内容不一致
  8. java jslider 自定义_Java自定义JSlider UI
  9. 2021中兴捧月神算师算法赛,4-24第一场,第一题:A - 跳高,2021-4-27
  10. 地图历史大反转!GISer如何查看历史影像
  11. 美国伊利诺伊大学香槟分校计算机专业,美国伊利诺伊大学香槟分校的专业排名分析...
  12. 电影《暮光之城》不得不爱
  13. 此nbsp;夜nbsp;无nbsp;眠
  14. Bowtie使用介绍
  15. 技术宅记录下看过的番
  16. Vue3集成富文本编辑器TinyMce6
  17. 【愚公系列】2023年01月 Java教学课程 039-Java中API
  18. 【JVM】JVM相关
  19. Windows电脑开始菜单无法打开,没反应的解决方法
  20. ORA-27101: shared memory realm does not exist 错误的处理

热门文章

  1. 基于MATLAB的人眼开度疲劳检测识别
  2. php钱汇算成美元,PHP to USD
  3. 利用公网Msf+MS17010跨网段攻击内网(不详细立马关站)
  4. 背景建模之codebook算法
  5. 模型运行速度FPS测试以及参数Parameter计算代码
  6. css 3D 旋转 - Demo
  7. vue-element-admin之修改登录页面背景
  8. Unity TUIO雷达入门
  9. 航空公司客户价值分析(下)
  10. Microsoft Visual Studio 2010 注册码