1. 程式人生 > >nutch 1.4在windows下安裝配置

nutch 1.4在windows下安裝配置

nutch 1.4windows下的安裝配置

0、介紹

Apache Nutch 是用java語言開發的開源網頁爬蟲程式。使用Nutch可以自動獲取網頁中的超連結,在檢查壞連結,建立遍歷過的網頁副本以便查詢等方面,將會減少大量的維護工作。也由此產生了Apache SolrSolr是一個開源的全文搜尋框架,通過Solr我們可以搜尋Nutch遍歷過的網頁。而且NutchSolr的整合十分簡易。

Apache Nutch框外支援Solr,這極大地簡化了兩者的整合。Solr不再依附Apache Tomcat執行舊的Nutch Web應用,也不再依靠Apache Lucene來建立索引。

1、提前需要安裝的工具和軟體

Nutch是Java開發的所以需要下載安裝Java JDK。設定環境變數。

Nutch的指令碼都是用Linux的Shell寫的,所以在Windows平臺需要一個Shell解釋程式。

Cygwin是一個在Windows下的模擬Linux系統程式。

我是下載的setup.exe,選擇線上安裝。具體的安裝過程網上有很多,可以參照。

字尾名tar.gzlinux系統壓縮包,zipwindows系統。

將下載的包,解壓到一個盤的根目錄下。可修改名稱(便於除錯進入)

Solr作用相當於tomcat+webapp

將下載的包,解壓到一個盤的根目錄下。

2、驗證Nutch的安裝

開啟cygwin

,進入nutch-1.4/runtime/local,例如我把檔案解壓到d盤,檔名為apache-nutch-1.4,於是命令為:

cd /cygdrive/d/apache-nutch-1.4/runtime/local,cygwin環境下,進入windows某個盤,加cygdrivecd /cygdrive/d/就相當於進入d盤。在這裡你使用命令時,注意路徑的正確性。

輸入bin/nutch,如果出現命令資訊提示(如下圖),則路徑正確。

3、爬行你的第一個網站

1) 在conf/nutch-site.xml中新增代理名稱(agent name)

<configuration>標籤間加入如下程式碼:

<property>
<name>http.agent.name</name>
<value>My Nutch Spider</value>
</property>

2) 在local目錄下建立資料夾urls,在資料夾中新建seed.txt,例如新增內容為:

注:在使用命令爬行時,會從當前目錄下尋找urls資料夾。例如,cygwin提示符的當前目錄為nutch-1.4/runtime/local時,使用bin/nutch命令就會從local目錄下找尋urls資料夾。

3) 編輯confregex-urlfilter.txt,如下將

# accept anything else
+.

替換為:

+^http://([a-z0-9]*\.)*giftour.com/

這表示會遍歷giftour.com域名下的所有URL

4) 開始爬行

bin/nutch crawl urls -dir crawl -depth 3 -topN 5

-引數意義:

-dir 放入爬行資訊的目錄

-threads 並行執行的爬行執行緒數

-depth  爬行深度

-topN 每層深度上的最大爬行頁面數

執行完後,你會看到crawl 目錄下建立了crawdblinkdbsegments三個資料夾。

 PS關於nutch-1.4爬取時Exception in thread “main” java.io.IOException: Job failed!

此為cygwin編碼問題,在cygwin安裝目錄下找到.bashrc檔案,將LANG變數給為"en_US.GBK"即:

export LANG="en_US.GBK"
export LC_ALL="en_US.GBK"(如果沒有新增到裡面)

重啟cygwin。也可以直接輸入,export LANG="en_US.GBK"export LC_ALL="en_US.GBK",但好像下次重啟cygwin的時候,又變回去了。

再執行nutch命令即可。

4、驗證Solr

將下載的solr包解壓,cygwin下進入example資料夾,執行命令:

java -jar start.jar

這時會看到solr的啟動資訊,在瀏覽器內輸入:

http://localhost:8983/solr/admin	
http://localhost:8983/solr/admin/stats.jsp

跳轉到Admin啟動頁面,Solr成功開啟。

5、整合SolrNutch

1) 將NUTCH_RUNTIME_HOME/local/conf目錄(NUTCH_RUNTIME_HOME代指相對路徑,下面含義相同,例如筆者的為:d/apache-nutch-1.4/runtime/local/conf)下的schema.xml拷到APACHE_SOLR_HOME/example/solr/conf目錄下,覆蓋掉原來的schema.xml

2)  APACHE_SOLR_HOME/example下,執行命令,java -jar start.jar重啟solr

3)  新建一個cygwinNUTCH_RUNTIME_HOME/local下執行命令:

bin/nutch solrindex http://127.0.0.1:8983/solr crawl/crawdb -linkdb crawl/linkdb crawl/segments/* (127.0.0.1是回送地址,指本地機)

4)  瀏覽器轉到 http://localhost:8983/solr/admin ,在搜尋框內輸入搜尋關鍵字,看到結果。(貌似匹配不怎麼智慧,未加入中文分詞,可以嘗試輸入數字1,檢視搜尋結果)

參考: