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

}

读取nutch爬取内容方法的更多相关文章

  1. 简单的爬虫爬的完整的<img>标签,修改正则即可修改爬取内容

    简单的爬虫爬的完整的<img>标签,生成<img>标签结果文件与爬虫经历的网页. <?php/** 从给定的url获取html内容** */function _getUr ...

  2. python爬虫之爬取糗事百科并将爬取内容保存至Excel中

    本篇博文为使用python爬虫爬取糗事百科content并将爬取内容存入excel中保存·. 实验环境:Windows10   代码编辑工具:pycharm 使用selenium(自动化测试工具)+p ...

  3. python爬虫爬取内容中,-xa0,-u3000的含义

    python爬虫爬取内容中,-xa0,-u3000的含义 - CSDN博客 https://blog.csdn.net/aiwuzhi12/article/details/54866310

  4. nutch爬取时Exception in thread “main” java.io.IOException: Job failed!

    用cygwin运行nutch 1.2爬取提示IOException: $ bin/nutch crawl urls -dir crawl -depth 3 -topN 10 crawl started ...

  5. Scrapy教程——搭建环境、创建项目、爬取内容、保存文件

    1.创建项目 在开始爬取之前,您必须创建一个新的Scrapy项目.进入您打算存储代码的目录中,运行新建命令. 例如,我需要在D:\00Coding\Python\scrapy目录下存放该项目,打开命令 ...

  6. pymysql 使用twisted异步插入数据库:基于crawlspider爬取内容保存到本地mysql数据库

    本文的前提是实现了整站内容的抓取,然后把抓取的内容保存到数据库. 可以参考另一篇已经实现整站抓取的文章:Scrapy 使用CrawlSpider整站抓取文章内容实现 本文也是基于这篇文章代码基础上实现 ...

  7. Java - XPath解析爬取内容

    code { margin: 0; padding: 0; white-space: pre; border: none; background: transparent; } pre { backg ...

  8. post请求方式的翻页爬取内容及思考

    1 #coding=utf-8 import urllib2 import urllib import json output = open('huizho.json', 'w') for page ...

  9. 使用代码查看Nutch爬取的网站后生成的SequenceFile信息

    必须针对data文件中的value类型来使用对应的类来查看(把这个data文件,放到了本地Windows的D盘根目录下). 代码: package cn.summerchill.nutch; impo ...

随机推荐

  1. MVC API 权限控制

    定义一个类:TestAuthorizeAttribute public class TestAuthorizeAttribute : AuthorizeAttribute { public strin ...

  2. debain 8为Iceweasel安装flash播放器

    到adobe官网下载flash.或https://get.adobe.com/flashplayer/?loc=cn 下载tar.gz文件后,解压缩后会有一个libflashplayer.so 文件. ...

  3. Entity Framework关联查询以及数据加载(延迟加载,预加载)

    数据加载分为延迟加载和预加载 EF的关联实体加载有三种方式:Lazy Loading,Eager Loading,Explicit Loading,其中Lazy Loading和Explicit Lo ...

  4. CSS3的calc()使用

    CSS3的calc()使用 calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度.比如说,你可以使用calc()给元素的border.margin.pad ...

  5. hdu 2602 Bone Collector(01背包)模板

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 Bone Collector Time Limit: 2000/1000 MS (Java/Ot ...

  6. SAX解析DOM4J的方法总结

    <二 .利用SAX进行DOM解析DOM4J的基本练习>    一. 本次总结用到的xml文档    <?xml version="1.0" encoding=&q ...

  7. 【Cocos2d-x 3.x】 事件处理机制源码分析

    在游戏中,触摸是最基本的,必不可少的.Cocos2d-x 3.x中定义了一系列事件,同时也定义了负责监听这些事件的监听器,另外,cocos定义了事件分发类,用来将事件派发出去以便可以实现相应的事件. ...

  8. C#的数组

    一维数组: 定义数组 int[] 变量名=new int [n]; 例一:输入班级人数,再输入每个人的姓名. 例二:输入班级人数,输入每个人的分数,求平均分 冒泡排序: 二维数组: 定义二维数组 in ...

  9. rabbitmq 重复ACK导致消息丢失

    rabbitmq 重复确认导致消息丢失 背景 rabbitmq 在应用场景中,大多采用工作队列 work-queue的模式. 在一个常见的工作队列模式中,消费者 worker 将不断的轮询从队列中拉取 ...

  10. NSString和NSMutableString常用方法+NSArray常用代码 (转)

    常见的NSString和NSMutableString方法: NSString方法: [plain] view plaincopy   +(id) stringWithContentsOfFile:p ...