Nutch

参考资料1. http://hi.baidu.com/shirdrn/item/5bc5cff7dd8d9615ce9f32ae

参考资料2. http://a280606790.iteye.com/blog/825045


第一步分析核心流程:

1. 建立初始URL集合分析


2. 

inject操作分析

inject操作调用的是nutch的核心包之一crawl包中的类org.apache.nutch.crawl.Injector。它执行的结果是:crawldb数据库内容得到更新,包括URL及其状态。


3.

generate操作分析

generate操作调用的是crawl包中的类org.apache.nutch.crawl.Generator。它执行的结果是:创建了抓取列表,存放于segments目录下,以时间为文件夹名称。循环抓取多少次,segments文件夹下就会有多少个以时间为名称的文件夹。


4. 

fetch操作分析

fetch操作调用的是fetcher包中的类org.apache.nutch.fetcher.Fetcher。它执行的结果是:将页面内容抓取下来,存于segment目录下。


5. 

parse操作分析

parse操作调用的是parse包中的类org.apache.nutch.parse.ParseSegment。它执行的结果是:将fetch得到的页面解析为text和data,存于segments目录下。

(parse操作主要作用可以从下面3方面来说明:

(1) 解析segment中由fetch得到的页面,并进行整理,将页面分成为parse-date和parse-text;

(2) parse-date中保存的是页面的题名、作者、日期、链接等内容;

(3) parse-text中保存的是页面的文本内容。

例如,我只执行一次抓取任务,就执行了上述的一些操作,操作的结果直接反映在segments目录中。可以看到在home\SHIYANJUN\nutch-0.9\mydir\segments目录下面创建了20081004102407这个目录,该目录中包含6个目录:content、crawl_fetch、crawl_generate、crawl_parse、parse_data、parse_text,从目录名称就可以大致知道该目录存取的相关内容信息。)


6. 

updatedb操作分析

updatedb操作调用的是crawl包中的类org.apache.nutch.crawl.CrawlDb。它执行的结果是:更新了crawldb数据库,为下一轮抓取做准备。


7.

invertlinks操作分析

invertlinks操作用来更新linkDB,为建立索引的工作提供准备。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章