Windows 7 下Nuthc二次开发笔记(二)——配置nutch-1.2

来源:互联网 发布:淘宝真货店 编辑:程序博客网 时间:2024/06/18 06:00

一、下载nutch-1.2文件apache-nutch-1.2-bin.zip(nutch应用程序)和apache-nutch-1.2-src.zip(nutch源文件)

        http://archive.apache.org/dist/nutch/

二、配置nutch-1.2

        1、首先确定电脑上已经安装了JDK(这里就不说JDK的安装了),并且正确设置了JAVA_HOME环境变量,JAVA_HOME的值为JDK的安装根目录,CLASSPATH=%JAVA_HOME%\lib,PATH=%JAVA_HOME%\bin。

        2、解压apache-nutch-1.2-bin.zip,将解压后的文件放到指定的目录中(以C:\nutch-1.2为例),修改nutch-1.2目录下conf子目录下的两个文件:

             (1)nutch_site.xml的configuration节点,增加http.agent.name

        <configuration>            <property>                <name>http.agent.name</name>                <value>HD nutch agent</value>            </property>            <property>                <name>http.agent.version</name>                <value>1.2</value>            </property>        </configuration>

             此外,也可以修改nutch_default.xml文件,找到http.agent.name配置项,如果该项的value值为空,随便写一个值即可(这里不再详述)。

            (2)在conf目录下找到crawl-urlfilter.txt文件,将其打开,找到# accept hosts in MY.DOMAIN.NAME配置项,将其下面的正则表达式+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/改为(+号前不要有空格)

        +^http://([a-z0-9]*\.)*com.cn/        +^http://([a-z0-9]*\.)*cn/         +^http://([a-z0-9]*\.)*com/

找到# skip URLs containing certain characters as probable queries, etc. 配置项,如果其下面有-[?*!@=]形式的正则表达式,将其删除,或将-号改为+号。最后,保存所作的修改。如下图所示。

                

        3、在nutch-1.2根目录下新建一个url.txt文件,其中每一行输入你想要爬去的网站域名,例如:

              http://www.qq.com/

              http://www.sina.com.cn/

              http://www.csdn.net/

             最后的"/"不要丢。

        4、打开cygwin,进入nutch根目录,cd c:/nutch-1.2

             运行命令:bin/nutch crawl url.txt -dir localweb -depth 3 -threads 4

        $ bin/nutch crawl url.txt -dir localweb -depth 3 -threads 4        crawl started in: localweb        rootUrlDir = url.txt        threads = 4        depth = 3        indexer=lucene        Injector: starting at 2012-12-22 23:59:31        Injector: crawlDb: localweb/crawldb        Injector: urlDir: url.txt        Injector: Converting injected urls to crawl db entries.        Exception in thread "main" java.io.IOException: Job failed!                at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1252)                at org.apache.nutch.crawl.Injector.inject(Injector.java:217)                at org.apache.nutch.crawl.Crawl.main(Crawl.java:124)

             并不是所有都会出现这样的错误,如果出现了这样的错误:进入cygwin安装目录中,找到profile文件,添加一个环境变量就行了:LANG="zh_CN.GBK",此时,再运行以上命令,如果还不行,在cygwin中输入$ export LANG="zh_CN.GBK"就可以了。

             -dir localweb 是指定爬行结果存放在localweb文件夹中。

             -depth 是指定爬行深度

             -threads 是指定开启线程数

三、配置Tomcat

        1、将Tomcat安装目录下的\webapps下的ROOT删除

        2、将nutch-1.2目录下的nutch-1.2.war复制到Tomcat\webapps下,并改名为ROOT.war,运行Tomcat,ROOT.war会自动生成ROOT文件夹。

        3、打开ROOT\WEB-INF\classes下的nutch_site.xml文件,改为如下形式:

        <?xml version="1.0"?>        <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>        <!-- Put site-specific property overrides in this file. -->        <configuration>          <property>          <name>searcher.dir</name>          <value>c:\nutch-1.2\localweb</value>         </property>        </configuration>

            其中<value>c:\nutch-1.2\localweb</value>部分是nutch抓取结果存放目录,应根据自己的设置进行相应修改。

        4、启动Tomcat,在浏览器中输入http://localhost:8080/就可以看到页面:

            

        至此,Nutch的简单配置完毕。