200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java编写的获取中国所有城市名称的网络爬虫

java编写的获取中国所有城市名称的网络爬虫

时间:2023-11-28 10:10:30

相关推荐

java编写的获取中国所有城市名称的网络爬虫

package .crawler.utils;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Url {/*** 获得网页信息*/public static String getWebContext(String domain) {// System.out.println("开始读取内容...("+domain+")");StringBuffer sb = new StringBuffer();BufferedReader in = null;try {.URL url = new .URL(domain);in = new BufferedReader(new InputStreamReader(url.openStream()));String line;while ((line = in.readLine()) != null) {sb.append(line);}//System.out.println(sb.toString());} catch (Exception e) { // Report any errors that arisee.printStackTrace();}finally{if(in != null){try {in.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}return sb.toString();}}

package .crawler.type;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.regex.Matcher;import java.util.regex.Pattern;import .crawler.utils.Url;/*** 城市信息解析*/public class CityCrawler {private static final ExecutorService cachedThreadPool = Executors.newCachedThreadPool();private static class GetCityThread implements Runnable{private String province;private List<String> citys;private String context;private CountDownLatch latch;GetCityThread(String context, String province, List<String> citys, CountDownLatch latch){this.context = context;this.province = province;this.citys = citys;this.latch = latch;}@Overridepublic void run() {Pattern cityP = pile("((?=" + province + ")((?!市)[^<])*(?=市))");Matcher matcher = cityP.matcher(context);while(matcher.find()){String city = matcher.group();city = city + "市";if(!citys.contains(city)){citys.add(city);}}latch.countDown();}}private static String start(String url){Map<String, List<String>> cityMap = new HashMap<>();cityMap.put("北京市", new ArrayList<String>());cityMap.put("天津市", new ArrayList<String>());cityMap.put("河北省", new ArrayList<String>());cityMap.put("山西省", new ArrayList<String>());cityMap.put("内蒙", new ArrayList<String>());cityMap.put("辽宁省", new ArrayList<String>());cityMap.put("吉林省", new ArrayList<String>());cityMap.put("黑龙江省", new ArrayList<String>());cityMap.put("上海市", new ArrayList<String>());cityMap.put("江苏省", new ArrayList<String>());cityMap.put("安徽省", new ArrayList<String>());cityMap.put("福建省", new ArrayList<String>());cityMap.put("江西省", new ArrayList<String>());cityMap.put("山东省", new ArrayList<String>());cityMap.put("河南省", new ArrayList<String>());cityMap.put("湖北省", new ArrayList<String>());cityMap.put("湖南省", new ArrayList<String>());cityMap.put("广东省", new ArrayList<String>());cityMap.put("广西", new ArrayList<String>());cityMap.put("海南省", new ArrayList<String>());cityMap.put("重庆市", new ArrayList<String>());cityMap.put("四川省", new ArrayList<String>());cityMap.put("贵州省", new ArrayList<String>());cityMap.put("云南省", new ArrayList<String>());cityMap.put("陕西省", new ArrayList<String>());cityMap.put("甘肃省", new ArrayList<String>());cityMap.put("青海省", new ArrayList<String>());cityMap.put("宁夏", new ArrayList<String>());cityMap.put("新疆", new ArrayList<String>());//获取所有的省份String context = Url.getWebContext(url);Iterator<String> it = cityMap.keySet().iterator();//创建一个闭锁线程int size = cityMap.keySet().size();CountDownLatch latch = new CountDownLatch(size);//遍历省份while(it.hasNext()){String province = it.next();List<String> values = cityMap.get(province);cachedThreadPool.execute(new GetCityThread(context, province, values, latch));}try {latch.await();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}it = cityMap.keySet().iterator();while(it.hasNext()){String province = it.next();List<String> values = cityMap.get(province);System.out.println(province + "→" + values);}//使用cityMap生成文件System.out.println("任务完成!");return context;}//开始运行爬虫任务public static void start(){cachedThreadPool.execute(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubstart("/member/city/city_md.asp");}});}}

程序开始运行

package .crawler;import .crawler.type.CityCrawler;public class Main {public static void main(String[] args) {CityCrawler.start();}}

运行结果:

新疆→[新疆乌鲁木齐市, 新疆克拉玛依市, 新疆吐鲁番市, 新疆哈密市, 新疆昌吉市, 新疆阜康市, 新疆米泉市, 新疆博乐市, 新疆库尔勒市, 新疆阿克苏市, 新疆阿图什市, 新疆喀什市, 新疆和田市, 新疆奎屯市, 新疆伊宁市, 新疆塔城市, 新疆乌苏市, 新疆阿勒泰市]

广东省→[广东省广州市, 广东省深圳市, 广东省汕头市, 广东省湛江市, 广东省韶关市, 广东省珠海市, 广东省佛山市, 广东省江门市, 广东省茂名市, 广东省肇庆市, 广东省惠州市, 广东省梅州市, 广东省阳江市, 广东省东莞市, 广东省中山市, 广东省潮州市, 广东省汕尾市, 广东省河源市, 广东省清远市, 广东省揭阳市, 广东省云浮市, 广东省番禺市, 广东省花都市, 广东省增城市, 广东省从化市, 广东省乐昌市, 广东省南雄市, 广东省潮阳市, 广东省澄海市, 广东省顺德市, 广东省南海市, 广东省三水市, 广东省高明市, 广东省台山市, 广东省新会市, 广东省开平市, 广东省鹤山市, 广东省恩平市, 广东省廉江市, 广东省雷州市, 广东省吴川市, 广东省高州市, 广东省化州市, 广东省信宜市, 广东省高要市, 广东省四会市, 广东省惠阳市, 广东省兴宁市, 广东省陆丰市, 广东省阳春市, 广东省英德市, 广东省连州市, 广东省普宁市, 广东省罗定市]

陕西省→[陕西省西安市, 陕西省铜川市, 陕西省宝鸡市, 陕西省咸阳市, 陕西省汉中市, 陕西省渭南市, 陕西省延安市, 陕西省榆林市, 陕西省兴平市, 陕西省韩城市, 陕西省华阴市, 陕西省安康市, 陕西省商州市]

河南省→[河南省郑州市, 河南省开封市, 河南省洛阳市, 河南省平顶山市, 河南省安阳市, 河南省新乡市, 河南省焦作市, 河南省鹤壁市, 河南省濮阳市, 河南省许昌市, 河南省漯河市, 河南省南阳市, 河南省商丘市, 河南省三门峡市, 河南省信阳市, 河南省巩义市, 河南省荥阳市, 河南省新密市, 河南省新郑市, 河南省登封市, 河南省偃师市, 河南省舞钢市, 河南省汝州市, 河南省林州市, 河南省卫辉市, 河南省辉县市, 河南省济源市, 河南省沁阳市, 河南省孟州市, 河南省禹州市, 河南省长葛市, 河南省义马市, 河南省灵宝市, 河南省邓州市, 河南省永城市, 河南省周口市, 河南省项城市, 河南省驻马店市]

江西省→[江西省南昌市, 江西省景德镇市, 江西省萍乡市, 江西省九江市, 江西省新余市, 江西省鹰潭市, 江西省赣州市, 江西省乐平市, 江西省瑞昌市, 江西省贵溪市, 江西省瑞金市, 江西省南康市, 江西省宜春市, 江西省丰城市, 江西省樟树市, 江西省高安市, 江西省上饶市, 江西省德兴市, 江西省吉安市, 江西省井冈山市, 江西省临川市]

海南省→[海南省海口市, 海南省三亚市, 海南省通什市, 海南省琼海市, 海南省儋州市, 海南省琼山市, 海南省文昌市, 海南省万宁市, 海南省东方市]

广西→[广西南宁市, 广西柳州市, 广西桂林市, 广西梧州市, 广西贵港市, 广西北海市, 广西防城港市, 广西钦州市, 广西玉林市, 广西岑溪市, 广西东兴市, 广西桂平市, 广西北流市, 广西凭祥市, 广西合山市, 广西贺州市, 广西百色市, 广西河池市, 广西宜州市]

上海市→[上海市]

吉林省→[吉林省长春市, 吉林省吉林市, 吉林省四平市, 吉林省辽源市, 吉林省通化市, 吉林省白山市, 吉林省松原市, 吉林省白城市, 吉林省九台市, 吉林省榆树市, 吉林省德惠市, 吉林省蛟河市, 吉林省桦甸市, 吉林省舒兰市, 吉林省磐石市, 吉林省公主岭市, 吉林省双辽市, 吉林省梅河口市, 吉林省集安市, 吉林省临江市, 吉林省洮南市, 吉林省大安市, 吉林省延吉市, 吉林省图们市, 吉林省敦化市, 吉林省珲春市, 吉林省龙井市, 吉林省和龙市]

宁夏→[宁夏银川市, 宁夏石嘴山市, 宁夏吴忠市, 宁夏青铜峡市, 宁夏灵武市]

安徽省→[安徽省合肥市, 安徽省淮南市, 安徽省淮北市, 安徽省芜湖市, 安徽省蚌埠市, 安徽省马鞍山市, 安徽省铜陵市, 安徽省安庆市, 安徽省阜阳市, 安徽省黄山市, 安徽省滁州市, 安徽省宿州市, 安徽省巢湖市, 安徽省六安市, 安徽省桐城市, 安徽省天长市, 安徽省明光市, 安徽省亳州市, 安徽省界首市, 安徽省宣州市, 安徽省宁国市, 安徽省贵池市]

河北省→[河北省石家庄市, 河北省唐山市, 河北省邯郸市, 河北省保定市, 河北省张家口市, 河北省秦皇岛市, 河北省邢台市, 河北省承德市, 河北省沧州市, 河北省廊坊市, 河北省衡水市, 河北省辛集市, 河北省藁城市, 河北省晋州市, 河北省新乐市, 河北省鹿泉市, 河北省遵化市, 河北省丰南市, 河北省迁安市, 河北省武安市, 河北省南宫市, 河北省沙河市, 河北省涿州市, 河北省定州市, 河北省安国市, 河北省高碑店市, 河北省泊头市, 河北省任丘市, 河北省黄骅市, 河北省河间市, 河北省霸州市, 河北省三河市, 河北省冀州市, 河北省深州市]

天津市→[天津市]

重庆市→[重庆市]

甘肃省→[甘肃省兰州市, 甘肃省白银市, 甘肃省天水市, 甘肃省嘉峪关市, 甘肃省金昌市, 甘肃省玉门市, 甘肃省酒泉市, 甘肃省敦煌市, 甘肃省张掖市, 甘肃省武威市, 甘肃省平凉市, 甘肃省西峰市, 甘肃省临夏市, 甘肃省合作市]

山西省→[山西省太原市, 山西省大同市, 山西省阳泉市, 山西省长治市, 山西省晋城市, 山西省朔州市, 山西省古交市, 山西省潞城市, 山西省高平市, 山西省忻州市, 山西省原平市, 山西省孝义市, 山西省离石市, 山西省汾阳市, 山西省榆次市, 山西省介休市, 山西省临汾市, 山西省侯马市, 山西省霍州市, 山西省运城市, 山西省永济市, 山西省河津市]

江苏省→[江苏省南京市, 江苏省徐州市, 江苏省无锡市, 江苏省常州市, 江苏省苏州市, 江苏省南通市, 江苏省连云港市, 江苏省淮阴市, 江苏省盐城市, 江苏省扬州市, 江苏省镇江市, 江苏省泰州市, 江苏省宿迁市, 江苏省江阴市, 江苏省宜兴市, 江苏省锡山市, 江苏省新沂市, 江苏省邳州市, 江苏省溧阳市, 江苏省金坛市, 江苏省武进市, 江苏省常熟市, 江苏省张家港市, 江苏省昆山市, 江苏省吴江市, 江苏省太仓市, 江苏省吴县市, 江苏省启东市, 江苏省如皋市, 江苏省通州市, 江苏省海门市, 江苏省淮安市, 江苏省东台市, 江苏省大丰市, 江苏省仪征市, 江苏省高邮市, 江苏省江都市, 江苏省丹阳市, 江苏省扬中市, 江苏省句容市, 江苏省兴化市, 江苏省靖江市, 江苏省泰兴市, 江苏省姜堰市]

四川省→[四川省成都市, 四川省自贡市, 四川省攀枝花市, 四川省泸州市, 四川省德阳市, 四川省绵阳市, 四川省广元市, 四川省遂宁市, 四川省内江市, 四川省乐山市, 四川省南充市, 四川省宜宾市, 四川省达州市, 四川省都江堰市, 四川省彭州市, 四川省邛崃市, 四川省崇州市, 四川省广汉市, 四川省什邡市, 四川省绵竹市, 四川省江油市, 四川省峨眉山市, 四川省阆中市, 四川省华蓥市, 四川省万源市, 四川省雅安市, 四川省西昌市, 四川省巴中市, 四川省资阳市, 四川省简阳市, 四川省广安市]

福建省→[福建省福州市, 福建省厦门市, 福建省泉州市, 福建省漳州市, 福建省南平市, 福建省龙岩市, 福建省莆田市, 福建省三明市, 福建省福清市, 福建省长乐市, 福建省永安市, 福建省石狮市, 福建省晋江市, 福建省南安市, 福建省龙海市, 福建省邵武市, 福建省武夷山市, 福建省建瓯市, 福建省建阳市, 福建省漳平市, 福建省宁德市, 福建省福安市, 福建省福鼎市]

内蒙→[内蒙包头市, 内蒙呼和浩特市, 内蒙乌海市, 内蒙赤峰市, 内蒙通辽市, 内蒙霍林郭勒市, 内蒙海拉尔市, 内蒙满洲里市, 内蒙扎兰屯市, 内蒙牙克石市, 内蒙根河市, 内蒙额尔古纳市, 内蒙乌兰浩特市, 内蒙二连浩特市, 内蒙锡林浩特市, 内蒙集宁市, 内蒙丰镇市, 内蒙东胜市, 内蒙临河市]

湖南省→[湖南省长沙市, 湖南省株洲市, 湖南省湘潭市, 湖南省衡阳市, 湖南省邵阳市, 湖南省岳阳市, 湖南省常德市, 湖南省益阳市, 湖南省郴州市, 湖南省永州市, 湖南省怀化市, 湖南省张家界市, 湖南省娄底市, 湖南省浏阳市, 湖南省醴陵市, 湖南省湘乡市, 湖南省韶山市, 湖南省耒阳市, 湖南省常宁市, 湖南省武冈市, 湖南省汩罗市, 湖南省临湘市, 湖南省津市, 湖南省沅江市, 湖南省资兴市, 湖南省洪江市, 湖南省冷水江市, 湖南省涟源市, 湖南省吉首市]

贵州省→[贵州省贵阳市, 贵州省六盘水市, 贵州省遵义市, 贵州省清镇市, 贵州省赤水市, 贵州省仁怀市, 贵州省铜仁市, 贵州省兴义市, 贵州省毕节市, 贵州省安顺市, 贵州省凯里市, 贵州省都匀市, 贵州省福泉市]

辽宁省→[辽宁省沈阳市, 辽宁省大连市, 辽宁省鞍山市, 辽宁省抚顺市, 辽宁省本溪市, 辽宁省丹东市, 辽宁省锦州市, 辽宁省阜新市, 辽宁省辽阳市, 辽宁省营口市, 辽宁省盘锦市, 辽宁省铁岭市, 辽宁省朝阳市, 辽宁省葫芦岛市, 辽宁省新民市, 辽宁省瓦房店市, 辽宁省普兰店市, 辽宁省庄河市, 辽宁省海城市, 辽宁省东港市, 辽宁省凤城市, 辽宁省凌海市, 辽宁省北宁市, 辽宁省盖州市, 辽宁省大石桥市, 辽宁省灯塔市, 辽宁省铁法市, 辽宁省开原市, 辽宁省北票市, 辽宁省凌源市, 辽宁省兴城市]

山东省→[山东省济南市, 山东省青岛市, 山东省淄博市, 山东省枣庄市, 山东省烟台市, 山东省潍坊市, 山东省泰安市, 山东省临沂市, 山东省东营市, 山东省济宁市, 山东省威海市, 山东省日照市, 山东省莱芜市, 山东省德州市, 山东省聊城市, 山东省章丘市, 山东省胶州市, 山东省即墨市, 山东省平度市, 山东省胶南市, 山东省莱西市, 山东省滕州市, 山东省龙口市, 山东省莱阳市, 山东省莱州市, 山东省蓬莱市, 山东省招远市, 山东省栖霞市, 山东省海阳市, 山东省青州市, 山东省诸城市, 山东省寿光市, 山东省安丘市, 山东省高密市, 山东省昌邑市, 山东省曲阜市, 山东省兖州市, 山东省邹城市, 山东省新泰市, 山东省肥城市, 山东省文登市, 山东省荣成市, 山东省乳山市, 山东省乐陵市, 山东省禹城市, 山东省临清市, 山东省滨州市, 山东省菏泽市]

北京市→[北京市]

湖北省→[湖北省武汉市, 湖北省黄石市, 湖北省襄樊市, 湖北省荆州市, 湖北省十堰市, 湖北省宜昌市, 湖北省鄂州市, 湖北省荆门市, 湖北省孝感市, 湖北省黄冈市, 湖北省咸宁市, 湖北省大冶市, 湖北省丹江口市, 湖北省枝城市, 湖北省当阳市, 湖北省枝江市, 湖北省老河口市, 湖北省枣阳市, 湖北省宜城市, 湖北省钟祥市, 湖北省应城市, 湖北省安陆市, 湖北省广水市, 湖北省汉川市, 湖北省石首市, 湖北省洪湖市, 湖北省松滋市, 湖北省麻城市, 湖北省武穴市, 湖北省恩施市, 湖北省利川市, 湖北省随州市, 湖北省仙桃市, 湖北省潜江市, 湖北省天门市, 湖北省赤壁市]

黑龙江省→[黑龙江省哈尔滨市, 黑龙江省齐齐哈尔市, 黑龙江省鸡西市, 黑龙江省鹤岗市, 黑龙江省大庆市, 黑龙江省伊春市, 黑龙江省佳木斯市, 黑龙江省牡丹江市, 黑龙江省双鸭山市, 黑龙江省七台河市, 黑龙江省黑河市, 黑龙江省阿城市, 黑龙江省双城市, 黑龙江省尚志市, 黑龙江省五常市, 黑龙江省讷河市, 黑龙江省虎林市, 黑龙江省密山市, 黑龙江省铁力市, 黑龙江省同江市, 黑龙江省富锦市, 黑龙江省绥芬河市, 黑龙江省海林市, 黑龙江省宁安市, 黑龙江省穆棱市, 黑龙江省北安市, 黑龙江省五大连池市, 黑龙江省绥化市, 黑龙江省安达市, 黑龙江省肇东市, 黑龙江省海伦市]

云南省→[云南省昆明市, 云南省曲靖市, 云南省玉溪市, 云南省安宁市, 云南省宣威市, 云南省昭通市, 云南省楚雄市, 云南省个旧市, 云南省开远市, 云南省思茅市, 云南省景洪市, 云南省大理市, 云南省保山市, 云南省瑞丽市, 云南省潞西市]

青海省→[青海省西宁市, 青海省格尔木市, 青海省德令哈市]

任务完成!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。