首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nutch - clone网站

Nutch - clone网站
EN

Stack Overflow用户
提问于 2015-10-27 03:54:54
回答 1查看 232关注 0票数 3

我正在玩Apache Nutch,我成功地抓取了一个网站。我想用Nutch制作一个网站的克隆,这样我就可以离线访问抓取的网页。有没有办法做到这一点?我正在寻找类似端点的东西,它接收url并返回网页内容,就像我用curl GETting url一样。

我知道有更多像HTTrack这样的专业解决方案,但我想知道是否可以使用Nutch来做到这一点。

EN

回答 1

Stack Overflow用户

发布于 2017-04-10 03:13:14

我认为你现在不需要这个,但不管怎样,我把我的答案。当然,也可以使用Apache注入种子urls并生成要获取的urls段,当您执行Nutch.After命令时-

代码语言:javascript
复制
$ bin/nutch fetch -all

Hbase (通常使用Hbase作为Nutch存储) webpage表结构将如下所示-

代码语言:javascript
复制
webpage : {
  key : "com.exampe.dev:http/",
  f : {
    bas : {
      timestamp : 1293732801833, 
      value : "http://dev.example.com/" 
    },
    cnt : {
      timestamp : 1293732801833, 
      value : "DOCTYPE html PUBLIC "-//W3C//DTD X...rest of page content" 
    },
    fi : {
      timestamp : 1293676557658,
      value : "\x00'\x8D\x00" 
    },
    prot : {
      timestamp : 1293732801833, 
      value : "x02\x00\x00" 
    },
    st : {
      timestamp : 1293732801833, 
      value : "x00\x00\x00\x02" 
    },
    ts : {
      timestamp : 1293676557658,
      value : "\x00\x00\x01-5!\x9D\xE5" 
    }
    typ : {
      timestamp : 1293732801833, 
      value : "application/xhtml+xml" 
    }
  },
  h : {
    Cache-Control : {
      timestamp : 1293732801833, 
      value : "private" 
    },
    Content-Type : {
      timestamp : 1293732801833, 
      value : "text/html; charset=UTF-8" 
    },
    Date : {
      timestamp : 1293732801833, 
      value : "Thu, 30 Dec 2010 18:13:21 GMT" 
    },
    ETag : {
      timestamp : 1293732801833, 
      value : 40bdf8b9-8c0a-477e-9ee4-b19995601dde" 
    },
    Expires : {
      timestamp : 1293732801833, 
      value : "Thu, 30 Dec 2010 18:13:21 GMT" 
    },
    Last-Modified : {
      timestamp : 1293732801833, 
      value : "Thu, 30 Dec 2010 15:01:20 GMT" 
    },
    Server : {
      timestamp : 1293732801833, 
      value : "GSE" 
    },
    Set-Cookie : {
      timestamp : 1293732801833, 
      value : "blogger_TID=130c0c57a66d0704;HttpOnly" 
    },
    X-Content-Type-Options : {
      timestamp : 1293732801833, 
      value : "nosniff" 
    },
    X-XSS-Protection : {
      timestamp : 1293732801833, 
      value : "1; mode=block" 
    }
  },
  mk : {
    _injmrk_ : {
      timestamp : 1293676557658, 
      value : "y" 
    },
    _gnmrk_ : {
      timestamp=1293732629430, 
      value : "1293732622-2092819984" 
    },
    _ftcmrk_ : {
      timestamp : 1293732801833, 
      value : "1293732622-2092819984" 
    }
  },
  mtdt : {
    _csh_ : {
      timestamp : 1293676557658, 
      value : "x80\x00\x00" 
    }
  },
  s : {
    s : {
      timestamp : 1293676557658, 
      value : "x80\x00\x00" 
    }
  }
}

f列族下名为cnt的列将包含页面的整个html内容。很明显,你可以用它来克隆页面。

此外,您还可以编写实现ParserParseFilter接口的自定义插件来捕获页面的全部内容。代码将非常简单明了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33354460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档