windows下安裝nutch

上學期跟同學一起做了個校園搜索引擎,雖然最後是用lucene做的,但開始的時候還是安裝了nutch,安裝的經驗不能浪費了,所以也發佈出來。

準備軟件:

jdk1.5.4   

apache-tomcat-6.0.29

nutch-0.9

Cygwin

1:首先安裝JAVA  (E:/Lycos/jdk1.5.0_04)  

安裝完成後 

設置環境變量  JAVA_HOME = E:/Lycos/jdk1.5.0_04

CLASSPATH=.;E:/Lycos/jdk1.5.0_04/lib/tools.jar;E:/Lycos/jdk1.5.0_04/lib/dt.jar;E:/Lycos/jdk1.5.0_04/bin;

2:安裝Cygwin  (E:/Lycos/cygwin)

在第一次安裝時:需要先從鏡像點上下載相關文件。



再次運行程序即可安裝成功。

解壓 tomcat-6.0.29  (E:/Lycos/tomcat-6.0.29)

4: 解壓 nutch-0.9  (E:/Lycos/cygwin/nutch-0.9)

設置環境變量 NUTCH_JAVA_HOME=" E:/Lycos/jdk1.5.0_04"

<1> 創建目錄 

nutch/bin 目錄下創建一個urls目錄,然後在目錄裏面新建一個文件,文件名爲 “url.txt,內容爲你要爬行的網站如:http://www.sina.com.cn

<2>修改nutch/conf/crawl-urlfilter.txt文件

打開nutch/conf/crawl-urlfilter.txt文件,把MY.DOMAIN.NAME字符替換爲url.txt內的url的域名,其實更簡單點,直接刪除MY.DOMAIN.NAME這幾個字就可以了,也就是說,只保存+^http://([a-z0-9]*/.)*這幾個字就可以了,表示所有http的網站都同意爬行。

或者:+^http://([a-z0-9]*/.)*sina.com.cn/

注意如果直接刪除MY.DOMAIN.NAME。不要保留刪除後的/

<3>修改nutch/conf/conf/nutch-site.xml文件

    打開nutch/conf/conf/nutch-site.xml文件,在<configuration></configuration>內插入一下內容:注:如果是sina.com.cn value 的值修改爲:http://www.sina.com.cn

         <property>

                         <name>http.robots.agents</name>

                         <value>http://www.sina.com.cn /klms</value> 

         </property>

         <property>

                         <name>http.agent.name</name>

                         <value>http:// www.sina.com.cn /klms</value>

         </property>

         <property>

                         <name>http.agent.url</name>

                         <value>http:// www.sina.com.cn /klms</value>

         </property>

 

     把<name>XXX</name>之間的內容替換爲其他字符,當然就算是不替換也無所謂,這裏的設置,是因爲nutch遵守了robots協議,在獲取response時,把自己的相關信息提交給被爬行的網站,以供識別。

<4>修改nutch/conf/nutch-default.xml

打開nutch/conf/nutch-default.xml 文件,找到<name>http.agent.name</name> ,然後把Value值隨便設計一個。

<name>http.agent.name</name>

 <value>sina</value>

以上配置,是爬取intranet的配置方式。

<6>執行nutch

由於配置nutch採用的是單獨網站的配置方式,所以執行上我們也採用的是單網查詢

先看一看nutch給出的命令:nutch crawl urls -dir crawl -depth 3 -topN 50

crawl:通知nutch.jar,執行crawlmain方法。

urls:存放需要爬行的url.txt文件的目錄,注意,這個名字需要和你的文件夾目錄相同,如果你的文件夾爲search,那這裏也應該改成search

 -dir crawl:爬行後文件保存的位置,可以在nutch/bin目錄下找到。

-depth 3:爬行次數,或者成爲深度,不過還是覺得次數更貼切,建議測試時改爲1

 -topN 50:一個網站保存的最大頁面數。

      執行命令的步驟:

1.  進入cygwin界面。

2.  使用cd命令,進入nutch/bin路徑下。

3.  執行:sh nutch crawl urls -dir crawl -depth 3 -topN 50

4.  具體的爬行日誌可以在nutch/logs目錄下看到,注意查找“INFO  fetcher.Fetcher - fetching http://XXXXXXX”這樣的內容,這裏是抓去過程日誌。

<7>  配置tomcat

nutch壓縮包下找到nutch-0.9.war文件,放到tomcat/webapps目錄下, 啓動tomcatwebapps/nutch/WEB-INF/classes/nutch-site.xml文件中的<configuration></configuration>內插入一下內容

<property>

<name>searcher.dir</name> <value>E:/Lycos/cygwin/nutch-0.9/bin/crawl</value> 

</property>

   <value/>的內容是剛纔爬行後的crawl目錄位置,提供給客戶端來查詢。

<8>解決中文亂碼

打開tomcat 目錄下的conf/server.xml ,解決中文問題。(0.9中好像沒出現亂碼)

<Connector port="8880"

   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

   enableLookups="false" redirectPort="8443" acceptCount="100"

   debug="0" connectionTimeout="20000" 

disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true" />

<9> 配置完成後,關閉啓動tomcat 再啓動tomcat。 訪問http://localhost:8080/nutch-0.9 即可。

這裏提醒一下:當第一次啓動的時候,可能會出現如下錯誤:

org.apache.jasper.JasperException: /search.jsp(151,22) Attribute value  language + "/include/header.html" is quoted

解決辦法:

搜索 search.jsp 文件

找到151行: 

<jsp:include page="<%= language + "/include/header.html"%>"/> 

改成這樣: 

<jsp:include page='<%= language + "/include/header.html"%>'/>

發佈了19 篇原創文章 · 獲贊 14 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章