Nutch使用方法简介
目前Nutch采用Sehll的啟動方式,如果您使用的是Windows系統,那么首先需要安裝Cygwin。本文就以在Windows中為例,介紹Nutch的安裝和使用方法。
?
(1)準備需要的軟件列表
- ??? Cygwin???? (下載地址:http://www.cygwin.com/setup.exe)
- ??? Jdk(1.4.2以上版本,下載地址http://java.sun.com/javase/downloads/index.jsp)
- ??? Nutch(推薦使用0.9版本,下載地址http://www.apache.org/dyn/closer.cgi/lucene/nutch/)
- ??? Tomcat(下載地址http://tomcat.apache.org/)
?
(2) 安裝軟件
???
???? 1)? Cygwin 打開安裝程序Cygwin.exe后,在"Choose Installation Type"頁選擇 "Install from Internet"(如果你已經把全部安裝包下載到本地,就可以選擇"Install from local directory"選項)。然后點擊"Next".
????????? 然后選擇安裝目錄,其他可保持默認選項,點擊"Next".
????????? 選擇保存安裝包的本地目錄,點擊"Next".
????????? 選擇下載連接的類型,點擊Next。
????????? 然后通過服務器先下在需要安裝的包列表,默認全部安裝,并且選擇可以使用的下載鏡像地址(速度不一樣,如果下載速度太慢可以換別的:) )
????????? 請耐心等待,安裝程序會自動下載和安裝程序包,并且保存程序包在設定的目錄,這樣下次安裝就不必重新下載了。我安裝時大約用了3分鐘,下載網速大約80Kbs/s。
????????? 完成安裝。
???? 2) 安裝JDK,這個就不用介紹了,注意安裝完成后需要在Windows的環境變量中加入JAVA_HOME=你的jdk的安裝目錄
???? 3) 安裝Tomcat,這個就不用多說了吧。
???? 4)把Nutch解壓到本地目錄,例如D:/nutch。這時候啟動Cygwin程序,Cygwin程序會啟動一個模擬Unix/Linux的終端窗口, 然后使用方式就和Unix的Shell一樣了,Cygwin的根目錄是/cygdriver,這個目錄相當于Windows的“我的電腦”,然后進入 Nutch的目錄,例如:cd /cygdriver/d/nutch,然后運行bin/nutch命令,如果出現下面的Usage 信息,這樣Nutch就安裝完成了,非常簡單。
???? Usage: nutch COMMAND
?????where COMMAND is one of:
???????? crawl one-step crawler for intranets
???????? readdb read / dump crawl db
???????? mergedb merge crawldb-s, with optional filtering
???????? readlinkdb read / dump link db
???????? inject inject new urls into the database
???????? generate generate new segments to fetch
???????? fetch fetch a segment's pages
???????? parse parse a segment's pages
???????? readseg read / dump segment data
???????? mergesegs merge several segments, with optional filtering and slicing
???????? updatedb update crawl db from segments after fetching
???????? invertlinks create a linkdb from parsed segments
???????? mergelinkdb merge linkdb-s, with optional filtering
???????? index run the indexer on parsed segments and linkdb
???????? merge merge several segment indexes
???????? dedup remove duplicates from a set of segment indexes
???????? plugin load a plugin and run one of its classes main()
???????? server run a search server
???? or
???????? CLASSNAME run the class named CLASSNAME
???? Most commands print help when invoked w/o parameters.
???????
?(3)開始使用Nutch
??????? 下面用一個簡單的例子說明Nutch的使用方法
??????? 1) 添加需要爬行的內部網地址信息。
???????? 新建一個目錄,寫入一些網址信息,例如我們需要爬行csdn的內部網。
???????????? mkdir urls
???????????? echo http://www.csdn.com/?>urls/csdn
??????? 2) 然后修改?conf目錄下的crawl-urlfilter.txt文件,這個文件中的正則表達式定義了那些文件可以被Nutch爬行,那些不可以被爬 行。其中以“+”號開頭的表示屬于Nuch合法的Url連接,“-”號開頭相反。我們需要修改文件中的
????????? # accept hosts in MY.DOMAIN.NAME
?????????? +^http://([a-z0-9]*/.)*MY.DOMAIN.NAME/
???????? 為
??????? # accept hosts in MY.DOMAIN.NAME
??????? +^http://([a-z0-9]*/.)*csdn.com/
?
???????? 3)接下來我們需要配置conf/nutch-site.xml,這個需要填寫相關的代理屬性,應為Nutch也許要準受Robot協議,在爬行人家網站的時候,把相關的信息提交給被爬行的網站。
???????? 我們在這個文件中,需要在<configuration>和</configuration>之間,加入是個代理屬性,例如http.agent.name屬性???????
???????? <property>
???????? <name>http.agent.name</name>
???????? <value>csdn.com</value>
???????? <description>csdn.com</description>
???????? </property>
??????? 其中除了name字段需要準確添寫外,其他value和descrption字段可或添寫。
?????? 同樣,還需要加入http.agent.description,http.agent.url和http.agent.email這三個屬性。
?
?????? 4)這樣就完成了全部爬行所需要的配置,下面就可以用nutch的crawl命令來派性企業內部網了
??????? 再nutch目錄中輸入:
??????? bin/nutch crawl urls -dir csdn -threads 4 -depth?2 -topN 30
??????? 這樣nutch就啟動并且開始爬行任務了,由于是簡單示例,所以以上這個命令很快就結束了,因為爬行的廣度和深度都非常小,也就是說,示例只爬行了csdn網站的很小一部分網頁。
??????? 下面就上面命令的參數進行說明:
??????? Crawl命令的使用說明為: crawl <url dir> [-dir index] [-threads num] [-depth num] [-topN num]
??????? 其中:
?????????? urls是存放需要爬行網址的文件夾目錄。
?????????? -dir選項是抓取的頁面的存放目錄。
?????????? -threads選項是啟動的最大線程數。
?????????? -depth選項是能爬行的最大深度,也就是最多爬行到第幾級的頁面,也叫爬行深度。
?????????? -topN選項是在每層深度上,所能爬行的最多頁面數,也稱爬行廣度。??????
??????? 完成爬行后,會在-dir選項所指定的目錄中保存網頁信息和搜索需要的索引。
總結
以上是生活随笔為你收集整理的Nutch使用方法简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 导函数的介质定理
- 下一篇: Unable to locate pac