Nutch的編譯安裝需要JDK、Ant等環(huán)境,Nutch的主要配置項在nutch-default.xml這個文件中,自定義配置文件nutch-site.xml中配置的屬性會覆蓋nutch-default.xml中對應(yīng)的屬性,可以根據(jù)實際需要對其進行配置。
在Oracle官網(wǎng)http://www.oracle.com/technetwork/java/javase/downloads/index.html下載JDK,本教程下載的是jdk-8u45-linux-x64.tar.gz。解壓JDK包:
tar zxvf jdk-8u45-linux-x64.tar.gz
解壓后得到j(luò)dk1.8.0_45這個文件夾,先查看/usr/lib/路徑下有沒有jvm這個文件夾,若沒有,則新建一個jvm文件夾:
mkdir /usr/lib/jvm
將當(dāng)前解壓得到的jdk1.8.0_45復(fù)制到/usr/lib/jvm中:
mv jdk1.8.0_45 /usr/lib/jvm
打開profile設(shè)置環(huán)境變量:
vim /etc/profile
在profile的末尾加入以下內(nèi)容:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_45
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
然后使用以下命令使得環(huán)境變量生效:
source /etc/profile
到此為止,JDK就安裝完成了。查看JDK的版本:
java –version
若以上命令沒有成功顯示版本信息,那有可能是之前的操作出現(xiàn)問題,請仔細檢查之前的操作。
到Ant官網(wǎng)http://ant.apache.org/bindownload.cgi下載最新版的Ant,本教程下載的包為apache-ant-1.9.6-bin.zip。使用以下命令解壓安裝包:
unzip apache-ant-1.9.6-bin.zip
解壓后可得到apache-ant-1.9.5這個文件夾,將其移動到/usr/local/文件夾中:
mv apache-ant-1.9.5 /usr/local/
打開profile設(shè)置環(huán)境變量:
vim /etc/profile
在profile文件末尾加入以下內(nèi)容:
export ANT_HOME=/usr/local/ant
export PATH=$PATH:$ANT_HOME/bin
使用以下命令使得環(huán)境變量生效:
source /etc/profile
查看Ant版本:
ant -version
請參考Nutch 1.10入門教程(一)——Nutch簡介下載Nutch1.10的源碼,若官網(wǎng)最新版已經(jīng)高于1.10,則需要在歷史版本中進行下載。本教程下載的Nutch包為apache-nutch-1.10-src.zip。
使用以下命令解壓源碼包:
unzip apache-nutch-1.10-src.zip
解壓后得到apache-nutch-1.10這個文件夾,然后進入文件夾:
cd apache-nutch-1.10
打開Nutch的默認(rèn)配置文件:
vim conf/nutch-default.xml
找到http.agent.name這個屬性,將其拷貝到conf/nutch-site.xml中,并修改value,修改后的nutch-site.xml如下:
<configuration>
<property>
<name>http.agent.name</name>
<value>myNutch</value>
<description>HTTP 'User-Agent' request header. MUST NOT be empty -
please set this to a single word uniquely related to your organization.
NOTE: You should also check other related properties:
http.robots.agents
http.agent.description
http.agent.url
http.agent.email
http.agent.version
and set their values appropriately.
</description>
</property>
</configuration>
http.agent.name這個屬性是用于標(biāo)記爬蟲的,便于被爬的網(wǎng)站對其進行識別。
nutch-site.xml中配置的屬性會覆蓋nutch-default中的默認(rèn)屬性,在這里我們僅修改http.agent.name這個屬性,其它的不作改變。
到此,我們就配置好Nutch了,接著,在Nutch的主目錄使用以下命令對源碼進行編譯:
ant
首次編譯過程會耗費較多時間,因為需要下載較多的依賴包,具體時間根據(jù)實際網(wǎng)絡(luò)情況而定,快的話需要5-10分鐘,慢的話需要20分鐘以上。
編譯開始時會報如下警告:
Could not load definitions from resource org/sonar/ant/antlib.xml. It could not be found.
這個警告不影響編譯結(jié)果,因此可以忽略。
編譯過程中也有可能因為網(wǎng)絡(luò)問題而出現(xiàn)編譯失敗,只需要使用如下命令清除上次編譯結(jié)果(不會刪除已經(jīng)下載好的依賴包):
ant clean
然后再使用如下命令進行編譯:
ant
在網(wǎng)絡(luò)較差的情況下,可能會重復(fù)上面兩步操作多次。
當(dāng)出現(xiàn)如下類似信息時,也就意味著編譯成功了:
BUILD SUCCESSFUL
Total time: 1 minute 7 seconds
Nutch編譯成功之后,會在主目錄下生成一個runtime文件夾。其中包含deploy和local兩個子文件夾。deploy用于分布式抓取,而local用于本地單機抓取。本節(jié)內(nèi)容先講解使用本地單機抓取,分布式抓取放到后續(xù)教程。
進入local文件夾,再進入bin文件夾。這里包含兩個腳本文件,一個是nutch,另一個是crawl。其中,nutch包含了所需的全部命令,而crawl主要用于一站式抓取。
更多建議: