Windows下Nutch的配置
Nutch是一個開源的、Java實(shí)現(xiàn)的搜索引擎。它提供了我們運(yùn)行自己的搜索引擎所需的全部工具。
?
Nutch可以分為2個部分:
- 抓取部分crawler
?? ? ? ? ? ? ? ?抓取程序抓取頁面并把抓取回來的數(shù)據(jù)做成反向索引
- 搜索部分searcher。
?? ? ? ? ? ? ? ?搜索程序則對反向索引搜索回答用戶的請求。
?
Nutch的爬蟲有兩種方式
- 爬行企業(yè)內(nèi)部網(wǎng)(Intranet crawling)。針對少數(shù)網(wǎng)站進(jìn)行,用crawl命令。
- 爬行整個互聯(lián)網(wǎng)。使用低層的inject,generate,fetch和updatedb命令,具有更強(qiáng)的可控制性。
?
昨晚折騰了一晚上終于是大功告成了!
??這里要說的是基于Intranet(企業(yè)內(nèi)部網(wǎng))的環(huán)境配置
??軟件:
?? ? ? ?JDK
?? ? ? ?Cygwin
?? ? ? ?Tomcat
?? ? ? ?apache-nutch-1.2-bin.zip(http://apache.etoak.com//nutch/apache-nutch-1.2-bin.zip)
?因為nutch腳本是基于Linux內(nèi)核的所以在Windows下運(yùn)行,就需要Cygwin這樣一個內(nèi)核模擬器
?1。安裝Cygwin(網(wǎng)上資料很多了,建議下載完全的安裝版,然后選擇從本地安裝)
?? ? ?我們的Cygwin安裝在C:/cygwin中
?2。我們把nutch包解壓把文件復(fù)制到C:/cygwin下,解壓后的文件為nutch-1.2
?3。打開安裝cygwin安裝時生成的快捷方式,這樣就能打開cygwin的命令行,里面能執(zhí)行的當(dāng)然都是Linux的命令
??cd進(jìn)入nutch-1.2/bin下面
??輸入./nutch 出來nutch命令的一些選項提示 說明已成功一半
?4。接下來是修改nutch-1.2/conf/nutch-site.xml
?? ? 修改后如下:
?? <configuration>
?? <property>
?? ? <name>http.agent.name</name>
?? ? <value>foxman</value>
?? ? <description></description>
?? </property>
?? <property>
?? ? <name>http.agent.description</name>
?? ? <value></value>
?? ? <description></description>
?? </property>
?? <property>
?? ? <name>http.agent.url</name>
?? ? <value></value>
?? ? <description></description>
?? </property>
?? <property>
?? ? <name>http.agent.email</name>
?? ? <value></value>
?? ? <description></description>
?? </property>
</configuration>
注:http.agent.name段下的foxman值一定要給出(當(dāng)然值是隨意的) 有興趣的可以查看nutch-1.2/conf/nutch-default.xml這個文件,里面也有http.agent.name段,默認(rèn)值為空,所以才要我們強(qiáng)制指明。 5。修改nutch-1.2/conf/crawl-urlfilter.txt 倒數(shù)四行的代碼修改成如下(只是修改了+^http://([a-z0-9]*/.)*163.com/)指明我們抓取的網(wǎng)站是http://www.163.com/下的網(wǎng)站。 # accept hosts in MY.DOMAIN.NAME +^http://([a-z0-9]*/.)*163.com/ # skip everything else -.?
6。在nutch-1.2/bin/下建立文件夾urls,然后在urls下面建立文件url.txt
里面內(nèi)容是
http://www.163.com/
注:你要抓取的網(wǎng)站。
7。在cygwin中進(jìn)入nutch-1.2/bin目錄
執(zhí)行
export JAVA_HOME=你JDK的安裝路徑,不用到JDK的bin文件那一層
配置好JAVA_HOME
接著執(zhí)行
./nutch crawl urls -dir crawl -depth 5 -threads 4 -topN 50
注:urls就是你之前建立的文件夾
?? ? ?-dir crawl就是創(chuàng)建crawl文件夾來存儲抓取的數(shù)據(jù)
?? ? ?-depth 5 就是抓取的深度
?? ? ?-threads 4 就是執(zhí)行的線程數(shù)
?? ? ?-topN 50 就是每層抓取數(shù)目
這樣你的抓取數(shù)據(jù)都在crawl中了
可以執(zhí)行
?./nutch readdb sina/crawldb/ -stats
注:查看抓取信息。
8。把nutch-1.2文件夾下的nutch-1.2.war拷到tomcat的webapps文件下
打開tomcat,nutch-1.2.war會自動被解壓成同名的nutch-1.2文件夾。
9。配置nutch-1.2/WEB-INF/classes/nutch-site.xml
?? 修改后如下
??<configuration>
?<property>
?? ? <name>searcher.dir</name>
?? ? <value>C:/cygwin/nutch-1.2/bin/crawl</value>
?</property>
</configuration>
注:C:/cygwin/nutch-1.2/bin/crawl這個路徑就是你之前抓取數(shù)據(jù)的存放路徑。
10。中文亂碼問題
配置tomcat的conf文件夾下的server.xml
修改如下
?
?? ?<Connector port="8080" protocol="HTTP/1.1"?
?? ? ? ? ? ? ? connectionTimeout="20000"?
?? ? ? ? ? ? ? redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
注:找到這一段,關(guān)鍵是添加URIEncoding="UTF-8" useBodyEncodingForURI="true"。
?
最好重啟一下Tomcat
瀏覽器中輸入http://localhost:8080/nutch-1.2/就可以大功告成了
常見問題:
??如何解決Generator: 0 records selected for fetching, exiting ...
Stopping at depth=0 - no more URLs to fetch.
一般都會是nutch/conf/crawl-urlfilter.txt中的配置出現(xiàn)的不可預(yù)見的錯誤
好好在配一下,參照步驟5。
注意+^http://([a-z0-9]*/.)*163.com/前不要加#那就代表注釋了。
我配了好久一路下來都很順,也是卡在這個問題上半天
?? 我當(dāng)時就是這個配置錯了,最好配的跟我一樣斜桿什么的也不要落下了!
OK,祝好遠(yuǎn)……
?
原文地址:http://blog.csdn.net/foxman209/article/details/6066846
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的Windows下Nutch的配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的第一个IT产品:PublicLect
- 下一篇: 下载视频的一种简便方法