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) {
                    }
                }

            } 

  • 相关阅读:
    Git在window的使用(TortoiseGit)之一
    redis——学习之路五(简单的C#使用redis)
    Redis——学习之路四(初识主从配置)
    Redis——学习之路三(初识redis config配置)
    Redis——学习之路二(初识redis服务器命令)
    Redis——学习之路一(初识redis)
    博客搬家通知
    JAVA WEB项目中使用并改造editor.md实现Markdown编辑器
    SQLite及ORMlite在WebApp中的使用
    日期选择插件clndr的使用
  • 原文地址:https://www.cnblogs.com/abcdwxc/p/3957359.html
Copyright © 2011-2022 走看看