使用java怎么获取国家统计局行政区
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这期内容当中小编将会给大家带来有关使用java怎么获取国家统计局行政区,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、该程序可根据需求取所需的省、市、县、乡镇(街
千家信息网最后更新 2025年12月03日使用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安全错误
数据库的锁怎样保障安全
软件开发学那种
虹口区加工软件开发项目信息
怎样用纯数字建立数据库
泰坦陨落2无法连接多人服务器
海康服务器能接多少摄像头
美妆网站数据库设计案例
服务器怎么盈利
数据库网关加密实例
温州广桥网络技术有限公司电话
维普软件开发有限公司
数据库技术对人类的应用
网络安全课观后感100字
西藏党建设计软件开发电话
ftp服务器是什么
服务器打开任务管理起快捷键
服务器cpu视频处理
未及时付款服务器被他人强行关闭
网络技术与运维
数据库技术案例解析
数据库连接两张表查询语句
电信网络安全宣传的小视频
魔兽世界为啥世界服务器连接失败
山东创客网络安全竞赛
中学生网络安全法案例
网络安全蠕虫是什么
数据库插入图片安卓不显示
腾讯云服务器怎么购买
林地数据库代码怎么删除
网络安全研究生复试调剂
文化市场网络安全防范
相关文章