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 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据
包括nutch的参考书,和NUTCH源代码分析
Nutch爬虫工作流程及文件格式详细分析!!!!!
Nutch爬虫工作流程及文件格式详细分析,文档不大
nutch爬虫,java也能做爬虫,不一定非得用python呦
nutch爬虫系统分析.doc
nutch爬虫系统分析报告.doc
nutch爬虫系统分析设计论文.doc
毕业论文-nutch爬虫系统分析.doc
Nutch 的爬虫有两种方式 爬行企业内部网(Intranet crawling:针对少数网站进行,用 crawl 命令。 爬行整个互联网:使用低层的 inject, generate, fetch 和 updatedb 命令,具有更强的可控制性。 有研究或...
大学毕设论文--nutch爬虫系统分析设计论文.doc
lucene学习的基本代码资料,里面有nutch扩展爬虫代码,可以抓取网页信息,新闻信息等,代码很详细,初学者的好帮手。
Nutch分布式网络爬虫研究与优化.pdfNutch分布式网络爬虫研究与优化.pdfNutch分布式网络爬虫研究与优化.pdf
一个已经部署好的 nutch1.7爬虫。 导入到 eclipse里面就能用了。假如不能用的话。 还是装个cygwin 吧 找到org.apache.nutch.crawl.Crawl 这个类。 run configuration 在 Programa argument 里面 输入 crawl urls -...
介绍 Nutch 的背景知识,包括 Nutch 架构,爬虫和搜索器。然后以开发一个基于 Nutch 的实际应用为例向读者展示如何使用 Nutch 开发自己的搜索引擎。在该示例中,首先带领读者开发一个作为 Nutch 爬虫抓取的目标网站...
Anthelion 是 Nutch 插件,专注于爬取语义数据。注意:此项目包括完整的 Nutch 1.6 版本,此插件放置在 /src/plugin/parse-anthAnthelion 使用在线学习方法来基于页面上下文预测富数据 Web 页面,... 标签:爬虫 蜘蛛
</p><p>Hadoop是大数据的核心技术之一,而Nutch集Hadoop之大成,是Hadoop的源头。学习Hadoop,没有数据怎么办?用Nutch抓!学了Hadoop的Map Reduce以及HDFS,没有实用案例怎么办?学习Nutch!Nutch的很多代码是用Map...
Nutch是一个开源的网络爬虫框架,由Apache基金会开发和维护。它能够高效地抓取并处理海量数据,并提供了丰富的插件来支持各种数据源和处理方式。由于其高度可定制化和易于扩展的特性,Nutch被广泛应用于搜索引擎、...
Apache Nutch网络爬虫 v1.19.zip