🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
Nutch的编译安装需要JDK、Ant等环境,Nutch的主要配置项在nutch-default.xml这个文件中,自定义配置文件nutch-site.xml中配置的属性会覆盖nutch-default.xml中对应的属性,可以根据实际需要对其进行配置。 ## 1 安装JDK 在Oracle官网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 ~~~ 解压后得到jdk1.8.0_45这个文件夹,先查看/usr/lib/路径下有没有jvm这个文件夹,若没有,则新建一个jvm文件夹: ~~~ mkdir /usr/lib/jvm ~~~ 将当前解压得到的jdk1.8.0_45复制到/usr/lib/jvm中: ~~~ mv jdk1.8.0_45 /usr/lib/jvm ~~~ 打开profile设置环境变量: ~~~ vim /etc/profile ~~~ 在profile的末尾加入以下内容: ~~~ 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 ~~~ 然后使用以下命令使得环境变量生效: ~~~ source /etc/profile ~~~ 到此为止,JDK就安装完成了。查看JDK的版本: ~~~ java –version ~~~ 若以上命令没有成功显示版本信息,那有可能是之前的操作出现问题,请仔细检查之前的操作。 ## 2 安装Ant 到Ant官网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设置环境变量: ~~~ vim /etc/profile ~~~ 在profile文件末尾加入以下内容: ~~~ export ANT_HOME=/usr/local/ant export PATH=$PATH:$ANT_HOME/bin ~~~ 使用以下命令使得环境变量生效: ~~~ source /etc/profile ~~~ 查看Ant版本: ~~~ ant -version ~~~ ## 3 安装配置Nutch 请参考[Nutch 1.10入门教程(一)——Nutch简介](http://www.sanesee.com/article/step-by-step-nutch-introduction "Nutch 1.10入门教程(一)——Nutch简介")下载Nutch1.10的源码,若官网最新版已经高于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的默认配置文件: ~~~ 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这个属性是用于标记爬虫的,便于被爬的网站对其进行识别。 nutch-site.xml中配置的属性会覆盖nutch-default中的默认属性,在这里我们仅修改http.agent.name这个属性,其它的不作改变。 到此,我们就配置好Nutch了,接着,在Nutch的主目录使用以下命令对源码进行编译: ~~~ ant ~~~ 首次编译过程会耗费较多时间,因为需要下载较多的依赖包,具体时间根据实际网络情况而定,快的话需要5-10分钟,慢的话需要20分钟以上。 编译开始时会报如下警告: Could not load definitions from resource org/sonar/ant/antlib.xml. It could not be found. 这个警告不影响编译结果,因此可以忽略。 编译过程中也有可能因为网络问题而出现编译失败,只需要使用如下命令清除上次编译结果(不会删除已经下载好的依赖包): ~~~ ant clean ~~~ 然后再使用如下命令进行编译: ~~~ ant ~~~ 在网络较差的情况下,可能会重复上面两步操作多次。 当出现如下类似信息时,也就意味着编译成功了: ~~~ BUILD SUCCESSFUL Total time: 1 minute 7 seconds ~~~ ## 4 编译后的目录结构 Nutch编译成功之后,会在主目录下生成一个runtime文件夹。其中包含deploy和local两个子文件夹。deploy用于分布式抓取,而local用于本地单机抓取。本节内容先讲解使用本地单机抓取,分布式抓取放到后续教程。 进入local文件夹,再进入bin文件夹。这里包含两个脚本文件,一个是nutch,另一个是crawl。其中,nutch包含了所需的全部命令,而crawl主要用于一站式抓取。