http://blog.csdn.net/lianqiang198505/archive/2006/10/17/1338155.aspx
在nutch的爬虫运行过程中有这样的一个调用(在CrawlTool中):
// update segments from db
UpdateSegmentsFromDb updater =
new UpdateSegmentsFromDb(nfs, db, segments, dir);
updater.run();
正如注释所说,这段代码的作用就是从webdb中的当前信息来对segments文件夹下的网页得分和anchor信息进行更新;之所以进行这个步骤是因为,在运行了上面代码的以上其他抓取步骤后,在segments文件夹的子文件夹中的fecher文件夹下存放的关于网页的得分和anchor信息不是最新的(这个是因为,爬虫运行完抓取后,每一个segments文件夹下的子文件夹是一层抓取产生的结果,然后我们利用上一层的抓取结果去更新webdb,然后再由webdb产生fetchlist,然后我们再由fetchlist中的内容去进行抓取,我们应该注意的一点是在每一次更新webdb时候,webdb中存放的网页的得分和指向该网页的连接信息可能会改变的,比如新爬回的网页有指向以前网页的连接时得分信息就会改变,但是在我们抓取时候每一次抓取的信息是分层的,存在segemnts文件夹下不同的子文件夹中,在各个不同层之间的由连接产生的最新得分信息只有且只有在webdb中才有体现,所以为了保证segment文件夹中的得分信息的最新,我们应该有这个步骤),我们就利用上面的代码来保证segments中信息的最新.
在UpdateSegmentsFromDb类中有三个内部类,分别是:
1. SegmentPage,它是用来存放关于url和segments文件夹下子文件的名称信息;
2. ByUrlComparator和BySegmentComparator,这两个类的作用是对存放好的以SegmentPage实例为key的文件进行排序;
3. Update,它用来存放的是新的网页得分和anchors信息;
这几个类的具体详细作用和代码中的部分细节剖析如下:
1. SegmentPage就是用来存放webdb中所有的url信息和url对应的segments文件夹下子文件夹的名称,它可以被按照ByUrlComparator和BySegmentComparator两个类中的排序方法分别按照url和segments文件夹下子文件夹的名称进行排序,以被以后更新信息时候用;
2. ByUrlComparator和BySegmentComparator都是用来进行排序,其中前者主要的目的是为了适应在webdb中存储的内容是有按照url排序的,这样就可以按照顺序有序的从webdb中取得相应的网页信息;而后者的主要目的是为了保证更新的文件夹按照一定的顺序,即更新完一个文件夹后更新另一个;
3. 我们可以发现,在这个代码中最重要的函数是类的成员方法close(),在这个里面包含了全部核心的处理部分
分享到:
相关推荐
此外,Nutch与Hadoop的结合是其强大之处。了解Hadoop的MapReduce模型、HDFS文件系统以及YARN资源调度器,能帮助你更好地理解和优化Nutch的分布式爬取过程。 总之,这份“nutch爬虫资料”涵盖了从理论到实践的全面...
Nutch 是一个开源的Web爬虫项目,由Apache软件基金会维护。它被设计用来抓取互联网上的网页,并对其进行索引,以便进行后续的搜索和分析。Nutch 的爬虫数据通常包括了它在抓取过程中收集到的网页URL、网页内容、元...
nutch爬虫系统分析 Nutch爬虫系统是基于Java语言开发的一款开源网络爬虫框架,旨在提供一个灵活、可扩展、可靠的爬虫解决方案。下面是对Nutch爬虫系统的分析。 Nutch简介 Nutch是一款基于Java语言开发的网络爬虫...
Nutch 是一个开源的全文搜索引擎框架,主要用于网络数据抓取,是Java开发的,因此它为Java开发者提供了一个构建大规模网络爬虫的平台。在Java环境下结合Eclipse IDE,我们可以轻松地开发和调试Nutch爬虫项目。下面将...
Nutch 是一个开源的搜索引擎项目,它包含了网页爬虫(Crawler)和搜索引擎(Searcher)两个主要组件。本文将详细分析Nutch爬虫的工作流程和涉及的主要文件格式。 首先,Nutch爬虫(Crawler)的核心任务是抓取互联网...
Nutch 是一个开源的搜索引擎项目,其核心功能包括网络爬虫(Crawler)和搜索器(Searcher)。本文主要分析Nutch爬虫的工作流程及其涉及的文件格式。 Nutch的爬虫部分主要负责从互联网上抓取网页并构建索引。这一...
Nutch爬虫系统是当前最流行的开源爬虫系统之一,广泛应用于搜索引擎、数据挖掘、文本分析等领域。本文将对Nutch爬虫系统进行详细的分析和设计,介绍Nutch的体系结构、抓取部分、配置文件分析等方面的知识点。 一、...
Nutch 是一个开源的Web爬虫项目,主要设计用于构建大规模的搜索引擎。它提供了一种高效、可扩展的方式来抓取和索引互联网上的数据。Nutch 的灵活性在于它支持多种爬网策略,既可以用于爬行企业内部网络,也可以用于...
对于初学者来说,"学习lucene和nutch爬虫代码"这个资料包应该包含了Lucene的基本代码示例和Nutch的爬虫代码。通过阅读和理解这些代码,你可以深入了解Lucene如何建立索引、执行搜索,以及Nutch如何抓取和处理网页。...
nutch爬虫系统分析报告.doc
抓取部分是 Nutch 系统的核心组件之一,负责从互联网上爬取网页数据。该部分包括以下几个步骤: 1. inject:将爬取的任务 inject 到抓取队列中。 2. generate:生成抓取的 URL 列表。 3. fetch:从互联网上爬取网页...
Nutch 是一个开源的Web爬虫系统,专为大规模网络数据收集而设计,它被广泛应用于搜索引擎、学术研究以及大数据分析等领域。这篇毕业论文详细分析了Nutch爬虫系统的各个方面,旨在深入理解其工作原理和架构。 1. ...
一个已经部署好的 nutch1.7爬虫。 导入到 eclipse里面就能用了。假如不能用的话。 还是装个cygwin 吧 找到org.apache.nutch.crawl.Crawl 这个类。 run configuration 在 Programa argument 里面 输入 crawl urls -...
Anthelion 是 Nutch 插件,专注于爬取语义数据。注意:此项目包括完整的 Nutch 1.6 版本,此插件放置在 /src/plugin/parse-anthAnthelion 使用在线学习方法来基于页面上下文预测富数据 Web 页面,... 标签:爬虫 蜘蛛
Nutch是一个开源的网络爬虫框架,由Apache基金会开发和维护。它能够高效地抓取并处理海量数据,并提供了丰富的插件来支持各种数据源和处理方式。由于其高度可定制化和易于扩展的特性,Nutch被广泛应用于搜索引擎、...
Apache Nutch 是一款开源的网络爬虫项目,其1.13版本的源代码提供了丰富的学习资源,适合对网络爬虫技术感兴趣的开发者深入研究。Nutch 主要用于抓取、索引和搜索互联网上的信息,它是一个高度可扩展的系统,能够...
Apache Nutch 是一个开源的网络爬虫项目,用于抓取互联网上的网页并建立索引,以便于搜索引擎进行高效的数据检索。v1.19 是该项目的一个稳定版本,提供了丰富的功能和改进,适用于研究、开发以及各种数据分析任务。...