Nutch 使用之鋒芒初試
“工欲善其事,必先利其器。”經過前文的“細解”,我們已經完成了Nutch在Windows中的安裝。接下來就讓我們通過鋒芒初試,來親自體驗一下Nutch的強大功能吧!
Nutch的爬蟲抓取網頁有兩種方式,一種方式是Intranet Crawling,針對的是企業內部網或少量網站,使用的是crawl命令;另一種方式是Whole-web crawling,針對的是整個互聯網,使用inject、generate、fetch和updatedb等更底層的命令。 本文將以使用Nutch為筆者在CSDN處的個人專欄(http://blog.csdn.net/zjzcl)文章內容建立搜索功能為例,來講述Intranet Crawling的基本使用方法(假設用戶電腦系統已安裝好JDK、Tomcat和Resin,并做過相應的環境配置)。
1、設置Nutch的環境變量
在Windows系統的環境變量設置中,增加NUTCH_java_HOME變量,并將其值設為JDK的安裝目錄。比如筆者電腦中JDK安裝于D:/j2sdk1.4.2_09,因此將NUTCH_JAVA_HOME的值設為D:/j2sdk1.4.2_09。
2、Nutch抓取網站頁面前的預備工作
(1)在Nutch的安裝目錄中建立一個名為url.txt的文本文件,文件中寫入要抓取網站的頂級網址,即要抓取的起始頁。筆者在此文件中寫入如下內容:
http://blog.csdn.net/zjzcl
(2)編輯conf/crawl-urlfilter.txt文件,修改MY.DOMAIN.NAME部分:
# accept hosts in MY.DOMAIN.NAME
+^http://blog.csdn.net/zjzcl
3、運行Crawl命令抓取網站內容
雙擊電腦桌面上的Cygwin圖標,在命令行窗口中輸入:
cd /cygdrive/i/nutch-0.7.1
不明白此命令含義的讀者請參見前《細解》一文,然后再輸入:
bin/nutch crawl url.txt -dir crawled -depth 3 -threads 4 >& crawl.log
等待大約2分多鐘后,程序運行結束。讀者會發現在nutch-0.7.1目錄下被創建了一個名為crawled的文件夾,同時還生成一個名為crawl.log的日志文件。利用這一日志文件,我們可以分析可能碰到的任何錯誤。另外,在上述命令的參數中,dir指定抓取內容所存放的目錄,depth表示以要抓取網站頂級網址為起點的爬行深度,threads指定并發的線程數。
4、使用Tomcat進行搜索測試
?。?)將tomcat/webapps下的ROOT文件夾名改成ROOT1;
?。?)將nutch-0.7.1目錄的nutch-0.7.1.war復制到tomcat/webapps下,并將其改名為ROOT;
?。?)打開ROOT/WEB-INF/classes下的nutch-site.xml文件,修改成如下形式:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="nutch-conf.xsl"?>
<!-- Put site-specific PRoperty overrides in this file. -->
<nutch-conf>
<property>
<name>searcher.dir</name>
<value>I:/nutch-0.7.1/crawled</value>
</property>
</nutch-conf>
其中的“<value>I:/nutch-0.7.1/crawled</value>”部分,讀者應根據自己的設置進行相應修改。
?。?)啟動Tomcat,打開瀏覽器在地址欄中輸入:http://localhost:8080,如圖1所示:
新聞熱點
疑難解答