读取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. Java笔记7-多态父类静态

    多态的应用-面向父类编程 1.对象的编译时类型写成父类 2.方法的返回类型写成父类 3.方法的参数类型写成父类 编译时类型:对象的声明时类型,在于编译期间 运行时类型:new运算符后面的类型 编译时类 ...

  2. Android驱动开发前的准备(四)

    源代码的下载和编译 4.1 下载.编译和测试Android源代码 4.2下载和编译linux内核源代码 4.1.1 配置Android源代码下载环境 (1) 创建一个用于存放下载脚本文件的目录 # m ...

  3. poj1298 The Hardest Problem Ever 简单题

    链接:http://poj.org/problem?id=1298&lang=default&change=true 简单的入门题目也有这么强悍的技巧啊!! 书上面的代码: 很厉害有没 ...

  4. 手机端touch事件 jquery模拟

    ontouchstart实现手机触屏中的hover效果 ontouchstart实现手机触屏中的hover效果 最近一直都在做手机网站的项目,会经常遇到手机屏幕触摸无交互效果,今天在一篇文章中看到模拟 ...

  5. UVA 572 (dfs)

    题意:找出一块地有多少油田.'@'表示油田.找到一块就全部标记. #include<cstdio> #define maxn 110 char s[maxn][maxn]; int n,m ...

  6. HDU 5937 Equation

    题意: 有1~9数字各有a1, a2, -, a9个, 有无穷多的+和=. 问只用这些数字, 最多能组成多少个不同的等式x+y=z, 其中x,y,z∈[1,9]. 等式中只要有一个数字不一样 就是不一 ...

  7. php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别

    关于这个问题,搜索引擎上搜到一大片的文章,有很多问题,在这找到一篇正确的说法:http://mimiz.cn/index.php/php/php-http_host-server_name-diffe ...

  8. 创建支持ssh服务的docker容器和镜像

    http://www.kongxx.info/blog/?p=57 1. 这里使用的centos作为容器,所以首先下载centos的imagessudo docker pull centos 2. 下 ...

  9. unity panel删除drawcall失败导致的残留影像

    ngui panel 被隐藏或者删除的时候调用ondisable,清空drawcall,如果这个操作是在ontriggerenter等物理操作中就会删除不掉导致留下残影 解决方式 : 讲这些操转移到协 ...

  10. C++ 数字转字符串

    #include <sstream> string num2str( int i) { stringstream ss; ss<<i; return ss.strs(); }