使用java怎么获取国家统计局行政区
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这期内容当中小编将会给大家带来有关使用java怎么获取国家统计局行政区,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、该程序可根据需求取所需的省、市、县、乡镇(街
千家信息网最后更新 2026年11月01日使用java怎么获取国家统计局行政区
这期内容当中小编将会给大家带来有关使用java怎么获取国家统计局行政区,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
1、该程序可根据需求取所需的省、市、县、乡镇(街道)、村(居)委会,代码为12位;
2、获取的年份可以更换;
3、可以根据需求写入数据库,方便使用,每年可更新维护一次;
4、国家统计局有访问限制,不宜一次性获取全国全部数据,建议可按照省份进行划分,分段获取 ;
实现代码如下:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.List;
/**
从国家统计局获取行政区划
国家统计局-NBOS(National Bureau of Statistics)
*/
/** * 读省的信息 * @param args * @throws Exception */ public static void main(String[] args) throws Exception { String url = baseUrl + "index.html"; //如果需要设置代理 //initProxy("xx.xx.xx.xx", "xx"); String str = getContent(url).toUpperCase(); String[] arrs = str.split("")); String provinceCode = a.substring(0, 2) + "0000000000"; System.out.println("省级CODE:" + provinceCode); String name = s.substring(s.indexOf("'>")+2, s.indexOf("
")); if(!"北京市".equals(name)){ continue; } System.out.println("获取省份:"+name); readShi(a,name); } } } /** * 读市的数据 * @param list * @throws Exception */ public static void readShi(String url,String name) throws Exception{ String content = getContent(baseUrl+url).toUpperCase(); String[] citys = content.split("CITYTR"); //'>110100000000 市辖区 ")); String cityCode = strs[si].substring(strs[si].indexOf("'>")+2, strs[si].indexOf("")); System.out.println("cityCode:" + cityCode); }else{ cityName = name+strs[si].substring(strs[si].indexOf("'>")+2, strs[si].indexOf("")); System.out.println("获取所属市:" + cityName); } } readXian(cityUrl.substring(0, cityUrl.indexOf("/")+1),cityUrl,cityName); } } /** * 读县的数据 * @param url * @throws Exception */ public static void readXian(String prix,String url,String cityName) throws Exception{ String content = getContent(baseUrl+url).toUpperCase(); String[] citys = content.split("COUNTYTR"); for(int i=1; i")); String cityCode = strs[si].substring(strs[si].indexOf("'>")+2, strs[si].indexOf("")); System.out.println("AreaCode:"+cityCode); }else{ areaName = cityName+strs[si].substring(strs[si].indexOf("'>")+2, strs[si].indexOf("")); System.out.println("获取所属市区(或者县级市):" + areaName); } } } if(null!=cityUrl){ readZhen(prix,cityUrl,areaName); } } } /** * 读镇的数据 * @param url * @throws Exception */ public static void readZhen(String prix,String url,String areaName) throws Exception{ String content = getContent(baseUrl+prix+url).toUpperCase(); String myPrix = (prix+url).substring(0, (prix+url).lastIndexOf("/")+1); String[] citys = content.split("TOWNTR"); for(int i=1; i")); String cityCode = strs[si].substring(strs[si].indexOf("'>")+2, strs[si].indexOf("")); System.out.println(cityCode); }else{ towntrName = areaName+strs[si].substring(strs[si].indexOf("'>")+2, strs[si].indexOf("")); System.out.println("获取所属乡镇(街道办事处):" + towntrName); } } readCun(myPrix,cityUrl,towntrName); } } /** * 读村/街道的数据 * @param url * @throws Exception */ public static void readCun(String prix,String url,String towntrName) throws Exception{ String content = getContent(baseUrl+prix+url).toUpperCase(); String[] citys = content.split("VILLAGETR"); for(int i=1; i"); villageCode = strs[1].substring(0, strs[1].indexOf("")); cxfldm = strs[2].substring(0, strs[2].indexOf("")); cunName = towntrName + strs[3].substring(0, strs[3].indexOf("")); System.out.println("villageCode:" + villageCode + "***cxfldm:" + cxfldm); System.out.println("所属村数据:" + cunName); } } //设置代理 public static void initProxy(String host, String port) { System.setProperty("http.proxyType", "4"); System.setProperty("http.proxyPort", port); System.setProperty("http.proxyHost", host); System.setProperty("http.proxySet", "true"); } //获取网页的内容 public static String getContent(String strUrl) throws Exception { try { //防止没有检查到cookie,一直循环重定向 CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL)); URL url = new URL(strUrl); java.net.HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //因为没有验证通过,导致没有跳到下一个地址,还是返回当前地址。 //这样的结果是,相同地址不断地跳回自己,变成死循环。20次以后,就报异常了 //java.net.ProtocolException: Server redirected too many times (20) conn.setInstanceFollowRedirects(false); BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),Charset.forName(CHARSET))); String s = ""; StringBuffer sb = new StringBuffer(""); while ((s = br.readLine()) != null) { sb.append(s); } br.close(); return sb.toString(); } catch (Exception e) { System.out.println("can't open url:"+strUrl); throw e; } }}
上述就是小编为大家分享的使用java怎么获取国家统计局行政区了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
数据
国家
统计局
国家统计局
所属
代码
内容
地址
街道
行政区
乡镇
市辖区
省份
需求
代理
分析
循环
相同
一次性
不断
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海卓越科技互联网
互联网的科技
易互联网科技有限公司
期待互联网科技
为想互联网科技
奇酷互联网络科技公司
互联网科技公司做什么
互联网科技股午盘股票涨跌
海南购全球互联网科技
西藏七维空间互联网科技有限公司
隆华科技工业互联网
广州慧亚互联网科技怎么样
剑昆互联网络科技有限公司临桂
常德市电业局互联网科技部
国大互联网教育科技有限公司工作
科技类公司包括互联网吗
东莞新华互联网科技学校
佛山市拉法互联网科技有限公司
互联网营销推广黑科技
恒生互联网科技趋势
蓝思科技飞鸽互联网
科技与互联网
互联网下的科技发展
互联网科技战争
互联网 视角下的科技创新
中盈科技互联网信息有限公司
互联网新科技动漫ppt素材
佛山市拉法互联网科技有限公司
北京天晋互联网科技有限公司
众联互联网络科技
相关文章