參考資料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,爲建立索引的工作提供準備。