Apache Nutch是一款Java實(shí)現(xiàn)的網(wǎng)絡(luò)爬蟲的編程搜索引擎工具,可以幫助你快速的完成編程工作,現(xiàn)在比較流行的分布式爬蟲,是Apache的Nutch,使用的讓人很多,智能檢索java資源便捷使用。
軟件介紹
Nutch是一個(gè)開源Java 實(shí)現(xiàn)的搜索引擎。它提供了我們運(yùn)行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬蟲。Nutch誕生于2002年8月,是Apache旗下的一個(gè)用Java實(shí)現(xiàn)的開源搜索引擎項(xiàng)目,自Nutch1.2版本之后,Nutch已經(jīng)從搜索引擎演化為網(wǎng)絡(luò)爬蟲,接著Nutch進(jìn)一步演化為兩大分支版本:1.X和2.X,這兩大分支最大的區(qū)別在于2.X對(duì)底層的數(shù)據(jù)存儲(chǔ)進(jìn)行了抽象以支持各種底層存儲(chǔ)技術(shù)。Nutch 致力于讓每個(gè)人能很容易, 同時(shí)花費(fèi)很少就可以配置世界一流的Web搜索引擎.
使用原理
在創(chuàng)建一個(gè)WebDB之后(步驟1), “產(chǎn)生/抓取/更新”循環(huán)(步驟3-6)根據(jù)一些種子URLs開始啟動(dòng)。當(dāng)這個(gè)循環(huán)徹底結(jié)束,Crawler根據(jù)抓取中生成的segments創(chuàng)建索引(步驟7-10)。在進(jìn)行重復(fù)URLs清除(步驟9)之前,每個(gè)segment的索引都是獨(dú)立的(步驟8)。最終,各個(gè)獨(dú)立的segment索引被合并為一個(gè)最終的索引index(步驟10)。
其中有一個(gè)細(xì)節(jié)問題,Dedup操作主要用于清除segment索引中的重復(fù)URLs,但是我們知道,在WebDB中是不允許重復(fù)的URL存在的,那么為什么這里還要進(jìn)行清除呢?原因在于抓取的更新。比方說一個(gè)月之前你抓取過這些網(wǎng)頁,一個(gè)月后為了更新進(jìn)行了重新抓取,那么舊的segment在沒有刪除之前仍然起作用,這個(gè)時(shí)候就需要在新舊segment之間進(jìn)行除重。