全国城市数据@TOC

全国城市数据

数据来源 中华人民共和国民政部 根据国家发布的最新城市数据进行处理

访问页面查看数据

2020年中华人民共和国县以上行政区划代码(截止2020年12月31日)
点击后可查看全国县以上数据。

抓取数据

这个是急慌慌写出来的,然后就插到了我们自己的数据库了,感兴趣的可以看一下。
其中有个 com.fy.utils.JsonUtils 工具类 自己使用ObjectMapper即可,这里就不再单独展示了。

使用了jsoup对html进行处理

     <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.11.3</version></dependency>

实体

/*** */
package com.fy.utils;import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;/*** @author**/
public class CityModel implements Serializable{/*** */private static final long serialVersionUID = 1L;private Long code;private String name;private int layer;private Long parent;private List<CityModel> children = new ArrayList<CityModel>();public Long getCode() {return code;}public void setCode(Long code) {this.code = code;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getLayer() {return layer;}public void setLayer(int layer) {this.layer = layer;}public Long getParent() {return parent;}public void setParent(Long parent) {this.parent = parent;}public List<CityModel> getChildren() {return children;}public void setChildren(List<CityModel> children) {this.children = children;}/** @Override public String toString() { return "CityModel [code=" + code +* ", name=" + name + ", layer=" + layer + ", parent=" + parent + ", children="* + children + "]"; }*/}

逻辑

/*** */
package com.fy.config;import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
import java.util.List;import org.apache.commons.lang3.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.web.client.RestTemplate;import com.fy.utils.CityModel;
import com.fy.utils.JsonUtils;/*** * @author **/
public class CityUtils  {public static void main(String[] args) {RestTemplate rest = new RestTemplate();String r = rest.getForObject("http://www.mca.gov.cn/article/sj/xzqh/2020/20201201.html", String.class);Document document = Jsoup.parse(r);Elements es = document.select("table").select("tr");es.removeIf(e -> !"19".equals(e.attr("height")));List<CityModel> l = new ArrayList<>();for (Element tr : es) {Elements tds = tr.select("td");int i = 1;String key = "key", value = "value";CityModel m = new CityModel();for (Element td : tds) {String text = td.text();if (StringUtils.isBlank(text))continue;if (i % 2 == 0) key = text;else value = text;i++;}if (StringUtils.isNumeric(value)) {m.setCode(Long.valueOf(value));m.setName(key);l.add(m);}}List<CityModel> ones = new ArrayList<CityModel>();for (CityModel cityModel : l) {if (cityModel.getName().contains("省")|| cityModel.getName().contains("自治区")|| cityModel.getName().contains("特别")|| cityModel.getName().contains("北京市")|| cityModel.getName().contains("天津市")|| cityModel.getName().contains("重庆市")|| cityModel.getName().contains("上海市")) {cityModel.setLayer(2);cityModel.setParent(0L);ones.add(getChildren(cityModel, l));}}CityModel m = new CityModel();m.setParent(-1L);m.setName("中国");m.setCode(0L);m.setLayer(1);m.setChildren(ones);String a = JsonUtils.writeValueAsString(m);
//      System.err.println(a);try {Files.createFile(Paths.get("C://city.json"));Files.write(Paths.get("C://city.json"), a.getBytes(), StandardOpenOption.WRITE);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private static CityModel getChildren(CityModel model, List<CityModel> list) {String code = model.getCode() + ""; //城市编码 例如北京市:110000//处理特别行政区 if(model.getName().contains("特别")) {return model;}//处理直辖市if(model.getName().equals("北京市")|| model.getName().equals("天津市")|| model.getName().equals("重庆市")|| model.getName().equals("上海市")) {code = code.substring(0, 3);for (CityModel cityModel : list) {String zxsCityCode = cityModel.getCode() + "";String cityCode =zxsCityCode.substring(0, 3),endCode = zxsCityCode.substring(zxsCityCode.length() - 2, zxsCityCode.length());if(code.equals(cityCode) && !"00".equals(endCode)) {cityModel.setParent(model.getCode());cityModel.setLayer(model.getLayer() + 1);model.getChildren().add(cityModel);}}return model;}// 找个每个省下的地级市以及地级市下的行政区// 山东为例 370000// 匹配规则 地级市和省的编码前两位以及最后两位一致就是地级市String startWithCode = code.substring(0, 2), //省编码前两位 37endWithCode = code.substring(code.length() - 2, code.length()), // 省编码后两位 00lastCode = code.substring(code.length() - 4, code.length());// 后四位 0000 则为省if("0000".equals(lastCode)) {for (CityModel cityModel : list) {String cityCode = (cityModel.getCode() + "");// 济南 370100  String cityLastCode = cityCode.substring(cityCode.length() - 4, cityCode.length()); // 后四位 0100if(cityCode.startsWith(startWithCode) && cityCode.endsWith(endWithCode) && !"0000".equals(cityLastCode)) {cityModel.setParent(model.getCode());cityModel.setLayer(model.getLayer() + 1);model.getChildren().add(getChildren(cityModel, list));}}return model;}//处理地级市下行政区String cityTempCode = code.substring(0, 4);for (CityModel cityModel : list) {String cityCode = (cityModel.getCode() + "");if(cityCode.contains(cityTempCode) && !cityModel.getName().equals(model.getName())) {cityModel.setParent(model.getCode());cityModel.setLayer(model.getLayer() + 1);model.getChildren().add(cityModel);}}return model;}}

全国城市数据获取 mysql全国城市数据相关推荐

  1. 2011年至2018年全国城市区县历史天气数据集,包含预报高温、低温、风速、风向、天气现象数据,mysql数据集,数据量800万以上数据大小1G

    2011年至2018年全国城市区县历史天气数据集,包含预报高温.低温.风速.风向.天气现象数据,mysql数据集,数据量800万以上数据大小1G 数据集格式,数据集来源于网络公开数据,本人整理所得 8 ...

  2. 全国、各省、各城市进出口贸易数据;地级市进出口贸易、对外贸易数据及进出口月度数据

    (1)2004-2019年地级市进出口贸易总额数据 1.数据来源:各城市统计年鉴.省份统计年鉴 2.时间跨度:2004-2019 3.区域范围:全国287个地级市 4.指标说明: 人民币和美元两种计价 ...

  3. 顶刊示例-经济研究数据-全国、省、市-城市人均收入、农村人均收入面板数据

    (1)全国城乡居民人均收入 1.数据来源:中国统计年鉴 2.时间跨度:1978-2020 3.区域范围:国家 4.指标说明: 包含如下指标: 全国居民人均可支配收入 城镇居民人均可支配收入 农村居民人 ...

  4. 全国城市一年的大气质量数据

    由于大创的分工,简单熟悉了一下爬虫便开始爬取数据 本篇博客爬取的数据网址为天气后报 一.思路介绍 首先说一下爬虫的思路: 获取网页的url 获取网页的html 对其进行数据解析,由于博主对xpath的 ...

  5. 大势智慧与华为云联合打造全国首个云原生城市智能中枢时空计算服务

    大势智慧与华为云联合打造全国首个云原生城市智能中枢时空计算服 实景三维是未来世界的基础设施,具备建构数字中国时空数字底座的强大能力,能够撬动起整个行业,引发产业链巨变.基于此,大势智慧与华为云联合打造 ...

  6. 带火中台的阿里,正携城市大脑席卷全国

    作者:陈杨 校对:海策 2015年,在结束对芬兰一家名为Supercell的游戏公司访问后,阿里提出了 "大中台,小前台"战略,并将搜索事业部.共享业务平台.数据技术.产品部整合组 ...

  7. 全国计算机工资最高的城市,中国“最宜居”的城市,连续三年获得第一,人均工资非常高!...

    在我们的人生中,如果能有四分之一的时间去旅游,那将是一件非常幸福的事情.每一座城市都有它最独特的地方,只要我们愿意去发现,就会有不一样的体验. 我国有着这样一座城市,非常适合居住,近几年旅游特别受欢迎 ...

  8. 计算机湖北大学中南民族大学,全国大学数量最多的城市武汉,这4所好大学,千万别错过!...

    全国大学数量最多的城市武汉,这4所好大学,千万别错过! 武汉是湖北的省会城市,也是我国的历史名城,在千年以前,武汉是楚文化的发源地,之前我们说到武汉,总是要提到武汉大学的樱花,而2020年,武汉以再一 ...

  9. 2020年全国信息安全标准化技术委员会大数据安全标准特别工作组全体会议即将召开...

    全国信息安全标准化技术委员会(TC260)(以下简称:委员会)大数据安全标准特别工作组(SWG-BDS)2020年首次全体会议即将在5月13-15日召开,会议由清华大学组织开展,工作组320多家成员单 ...

最新文章

  1. 罹患各种癌晚期,无法救治
  2. 序列内置方法详解(string/list/tuple)
  3. Java热部署神奇:JRebel异常之processing of -javaagent failed
  4. 什么是拉电流和灌电流?
  5. java.sql.sqlexception: 无效的名称模式:_PSQLException:错误:关系&ldquo; TABLE_NAME&rdquo;不存在...
  6. Android自动化之旅—生成渠道包
  7. DBMS-数据库设计与E-R模型:E-R模型、约束、E-R图、E-R扩展特性、E-R图转换为关系模式、UML建模...
  8. git学习(6):删除github镜像
  9. [原创]windows server 2012 AD架构试验系列 – 12 配置操作主机
  10. 开源项目cardslib简单介绍和导入eclipse并运行的方法
  11. Unity3D之Material(材质、着色器、纹理)
  12. oracle数据导出工具sqluldr2安装及使用
  13. 数据挖掘工程师笔试及答案整理
  14. MAVEN下载修改settings.xml
  15. 跟我一起学习ZeroMQ(8):带broker的发布订阅模式:ZMQ_PUB、broker(ZMQ_XPUB和ZMQ_XSUB)、ZMQ_SUB
  16. java vo层_java的几种对象(PO,VO,DAO,BO,POJO)解释
  17. FPGA的多路偶数分频器设计
  18. 电信和移动差距:关于充话费赠手机的营销对比
  19. 夜神模拟器的安装和使用
  20. it技术烂大街_我是如何从在大街上卖食物到在顶尖的技术公司工作的方式

热门文章

  1. java中将两个图片进行叠加
  2. 秃顶之路-Day11
  3. 第一单元 用python学习微积分(三) 求导四则运算及三角函数(下)- 三角函数
  4. phpwind支持php7吗,PHPWind 7正式发布
  5. Fabric Block区块结构解析
  6. java 密码库_JCA-Java加密框架
  7. 如何从零开始学习SEM?
  8. 吃鸡一直显示服务器,吃鸡一直显示服务器未连接 | 手游网游页游攻略大全
  9. 四大类型的BPM平台
  10. Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F