欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

抓取国家统计局网站上的最新县及县以上行政区划代码(apache camel版),,和python或者其他脚

来源: javaer 分享于  点击 18444 次 点评:69

抓取国家统计局网站上的最新县及县以上行政区划代码(apache camel版),,和python或者其他脚


和python或者其他脚本的版本不同,apache camel就像讲故事一样将这个任务完成了。都是宏观的操作,比如从某个url取出东西-》处理-》在到新的url中-》再处理-》到文件。

[Java]代码

    private static Pattern pattern = Pattern.compile("'(t\\d{8}_\\d{8,}\\.htm)'",Pattern.CASE_INSENSITIVE);    private static Pattern pattern1 = Pattern.compile("<span class=\"content\">(.*?)</span>",Pattern.CASE_INSENSITIVE);from("timer://foo?fixedRate=true&delay=0&period=864000")//每隔24小时                .to("http4://www.stats.gov.cn/tjbz/xzqhdm/")//从那个地方                .process(new Processor() {//处理下结果,从中regex出最新数据的url                    @Override                    public void process(Exchange exchange) throws Exception {                        Matcher m = pattern.matcher(exchange.getIn().getBody(String.class));                        if(m.find()){                            in.setHeader("newurl", "http4://www.stats.gov.cn/tjbz/xzqhdm/" + m.group(1));                        }                    }                })                .setHeader(Exchange.HTTP_URI,header("newurl"))                .setProperty(Exchange.CHARSET_NAME, constant("GBK"))                .to("http4://will.be.override")//从最新的url或者最新的数据//              .setBody().javaScript("'abc'")                .process(new Processor() {//再处理下                    @Override                    public void process(Exchange exchange) throws Exception {                        Matcher m = pattern1.matcher(exchange.getIn().getBody(String.class));                        if(m.find()){                            String c = m.group(1);                            c = c.replaceAll("(( )|\\s)+", ",");                            String[] ccc = c.split("<BR>");                            StringBuffer sb = new StringBuffer();                            for(String s : ccc){                                sb.append(s);                                sb.append("\n");                            }                            in.setBody(sb.toString());                        }                    }                })                .setHeader(Exchange.FILE_NAME, constant("m3958.html"))                .to("file:target/m3958");//到文件中
相关栏目:

用户点评