zoukankan      html  css  js  c++  java
  • 读取nutch爬取内容方法

    读取nutch内容有如下两种方法:

    1 通过Nutch api SegmentReader读取。

             public Content readSegment(String segPath,String url){  

                  
                Text key= new Text(url);  
                Path path= new Path(segPath);  
                Content content = null;  
          
                ArrayList<Writable> parsedLst = null;  
                Map<String,List<Writable>> results=new HashMap<String, List<Writable>>();  
                SegmentReader reader= new SegmentReader(configuration,true,true,true,true,true,true);  
                try {  
                    reader.get(path, key, new StringWriter(), results);  
                    parsedLst=(ArrayList<Writable>) results.get("co");  
                    Iterator<Writable> parseIter=parsedLst.iterator();  
                    while(parseIter.hasNext()){  
                        content=(Content) parseIter.next();  
                    }  
                } catch (Exception e) {  
                    e.printStackTrace();  
                }  
          
                return content;  

            }  

      2 通过SequenceFile 读取

            public static void main(String[] args) throws IOException { 

                args=new String[]{"D:\nutchv\nutch12\apache-nutch-1.2\data\csdn2\segments\20140904104348"};   

                Configuration conf = NutchConfiguration.create();       
                Options opts = new Options();       
                GenericOptionsParser parser = new GenericOptionsParser(conf, opts, args);       
                String[] remainingArgs = parser.getRemainingArgs();     
                FileSystem fs = FileSystem.get(conf);
                String segment = remainingArgs[0];
                Path file = new Path(segment, Content.DIR_NAME + "/part-00000/data");
                SequenceFile.Reader reader = new SequenceFile.Reader(fs, file, conf);
                Text key = new Text();
                Content content = new Content();
                // Loop through sequence files
                while (reader.next(key, content)) {
                    try {
                        System.out.write(content.getContent(), 0,
                                content.getContent().length);
                    } catch (Exception e) {
                    }
                }

            } 

  • 相关阅读:
    基于 abp vNext 和 .NET Core 开发博客项目
    基于 abp vNext 和 .NET Core 开发博客项目
    基于 abp vNext 和 .NET Core 开发博客项目
    基于 abp vNext 和 .NET Core 开发博客项目
    数据结构 6 基础排序算法详解 冒泡排序、三层冒泡排序逐步优化方案详解
    数据结构 5 哈希表/HashMap 、自动扩容、多线程会出现的问题
    数据结构 4 时间复杂度、B-树 B+树 具体应用与理解
    数据结构 3 二叉查找树、红黑树、旋转与变色 理解与使用
    数据结构 2 字符串 数组、二叉树以及二叉树的遍历
    数据结构 1 线性表详解 链表、 栈 、 队列 结合JAVA 详解
  • 原文地址:https://www.cnblogs.com/abcdwxc/p/3957359.html
Copyright © 2011-2022 走看看