
nutch
spacewalkman
这个作者很懒,什么都没留下…
展开
-
nutch v1.9源码分析(4)——injector分析
1.1 inject1.1.1 职责 将文本文件中的种子url初始化到系统存储所有url列表的库(crawldb)中。爬虫系统本质上是图遍历,最终目的是发现整个网络图(只不过nutch的图遍历与传统《数据结构》中的图遍历算法不同之处在于——后者一般是在图拓扑结构已知的情况下,以某种策略访问每个节点,而前者是访问之前图拓扑未知,是在访问的过程中一边发现新的节点,一边遍历的过程原创 2014-12-03 18:39:51 · 1764 阅读 · 3 评论 -
爬虫产品开发(2)——产品范围
做什么?1. 做“爬”,对Nutch的inject、generate、fetch、parse、updatedb这个闭环爬取流程进行封装,采用拖拽式流程定义可视化监控提高易用性。2. 做“内容解析”,将非结构化的网页内容解析成结构化,提取方式适用性要广,适合不同类型的网页。3. 做“内容过滤”,可按照字段过滤,采用规则引擎实现复杂的内容过滤。原创 2014-11-05 16:22:35 · 1021 阅读 · 0 评论 -
爬虫产品开发(1)——主要功能和特色
主要功能和特色:1. BS结构2. 完全MapReduce化3. 流程驱动,支持3种类型的流程自定义:1) 网页内容采集流程:封装了Nutch的inject、generate、fetch、parse、updatedb等节点,对普通用户将默认参数进行了调优,对“爬虫专家”用户,提供了Nutch所有高级的参数的界面设置入口。图1 网页内容爬取流程定义原创 2014-11-05 15:59:28 · 2049 阅读 · 0 评论 -
nutch v1.9源码分析(3)——nutch基本爬取流程
1 nutch基本爬取流程nutch是大名鼎鼎的Doug Cutting发起的爬虫项目,nutch孵化了现在大数据处理事实上的标准Hadoop。在nutch V 0.8.0 版本之前,Hadoop是nutch的一部分,从nutch V0.8.0开始,HDFS和MapReduce从nutch中剥离出成为Hadoop。v0.8.0之后,nutch就完全构建在Hadoop的基础之上了。原创 2014-12-03 18:29:31 · 3825 阅读 · 0 评论 -
nutch v1.9源码分析(1)——分析目标
以下主要分析一下nutch提供的各种tool,重点分析一下与爬取cycle相关的流程,也介绍一下其他tool,每个tool主要从如下几个方面介绍:1) 每个tool的功能,即职责。2) 用户视角的Command Line调用方式和命令行的参数(options)。3) 在nutch-default.xml中与该tool相关的配置项(该配置项可以通原创 2014-12-03 17:23:40 · 1663 阅读 · 0 评论 -
nutch v1.9源码分析(2)——nutch bin和src目录解析及编译
1 nutch bin目录结构图1 nutch release包的目录结构1) bin目录:主要含有2个可执行文件crawl和nutch脚本,其中crawl脚本只是nutch脚本的wrapper,提供了all-in-one(一站式)形式的调用方式,通过限定相对于种子url的相对深度的方式来结束爬取循环,本质上是逐个调用nutch脚本中的各个tool。2)原创 2014-12-03 18:19:28 · 3295 阅读 · 0 评论 -
nutch v1.9源码分析(5)——generator分析
1.1 generator1.1.1 职责generator的目的是从crawldb中根据一定的选取策略,选取一部分url作为本次循环爬取列表(fetchlist)。在生成爬取列表的过程中,需要考虑爬虫的“礼貌”问题——爬虫不能只顾自己以最快的速度将需要爬取的内容全部爬取下来,而不管对所爬取的网站造成多大访问压力,过分的爬取策略可能会被源网站认为是DOS(Deni原创 2015-01-15 10:31:12 · 2971 阅读 · 0 评论 -
nutch v1.9源码分析(6)——plugin系统
1 Nutch plugin system1.1 为什么要使用插件机制?1) 分离关注点,取得编译时和运行时的灵活性。插件机制也是“微内核”机制的一种应用。使用插件机制,在编译时,将处理爬取流程内核代码和流程中用到功能性接口(即:Extension-Point)分离开,遵循了“面向抽象编程”的思想,能够使得核心代码开发人员和插件开发可以并行开发,二原创 2015-01-20 09:44:57 · 1565 阅读 · 0 评论