递归读取heritrix 爬下来的目录文件

递归读取heritrix 爬下来的目录文件

1.   在StringUtil中获取写一个根据路径递归的方法

    public  ArrayList<String> getAllPath(Stringpath){

        File file = newFile(path);

        File[] fileList = file.listFiles();

        for(File f :fileList){

            if(f.isDirectory()){

                getAllPath(f.getAbsolutePath());

            }else{

                results.add(f.getAbsolutePath());

            }

        }

        return results;

    }

2.   测试:

      @Test

    public voidgetAllPathTest(){

        String path = "F:\\lucene\\myheritrix\\jobs\\output\\mirror\\news.sohu.com";

        ArrayList<String> lists = newStringUtil().getAllPath(path);

        for(String s: lists){

            System.out.println(s);

        }

        System.out.println(lists.size());

       

}

3.   整合起来,每次读取内容

   public voidpaserSohuNews2(String inputPath,String outputPath){

        File outputfile = newFile(outputPath);

       

        try {

            if(!outputfile.exists()){

                outputfile.mkdirs();

            }

            ArrayList<String> pathLists = newStringUtil().getAllPath(inputPath);

            for(Stringpath: pathLists){

                if(!path.contains(".shtml")) continue;

                String html = StringUtil.getContent(path);

                //System.out.println(html);

                String content = StringUtil.getContentUseParse2(html,"gbk", "h1","itemprop","headline");

                content += ConstantString.WIN_NextLine+StringUtil.getContentUseParse2(html,"gbk", "div", "itemprop", "datePublished");

                System.out.println(content);

                content  += ConstantString.WIN_NextLine+StringUtil.getContentUseParse2(html,"gbk", "div", "itemprop", "articleBody");

               

               

                String name = StringUtil.getNameFromPath(path);

                File outputFile  = newFile(outputPath+"/"+name+ConstantString.postText);

                if(!outputFile.exists()){

                    outputFile.createNewFile();

                }

                //System.out.println("outputpath:"+outputPath);

                //System.out.println("outputFile:"+outputFile);

               

                OutputStreamWriter ot = new OutputStreamWriter(newFileOutputStream(outputFile));

                ot.write(content);

                ot.close();

               

                //System.out.println("---------------------------------------");

         }

 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值