Nutch 使用之锋芒初试[组图]

Nutch 使用之锋芒初试
  
  “工欲善其事,必先利其器。”经过前文的“细解”,我们已经完成了Nutch在Windows中的安装。接下来就让我们通过锋芒初试,来亲自体验一下Nutch的强大功能吧!
  
  Nutch的爬虫抓取网页有两种方式,一种方式是Intranet Crawling,针对的是企业内部网或少量网站,使用的是crawl命令;另一种方式是Whole-web crawling,针对的是整个互联网,使用inject、generate、fetch和updatedb等更底层的命令。 本文将以使用Nutch为笔者在CSDN处的个人专栏(http://blog.csdn.net/zjzcl)文章内容建立搜索功能为例,来讲述Intranet Crawling的基本使用方法(假设用户电脑系统已安装好JDK、Tomcat和Resin,并做过相应的环境配置)。
  
    1、设置Nutch的环境变量
  
  在Windows系统的环境变量设置中,增加NUTCH_Java_HOME变量,并将其值设为JDK的安装目录。比如笔者电脑中JDK安装于D:j2sdk1.4.2_09,因此将NUTCH_JAVA_HOME的值设为D:j2sdk1.4.2_09。
  
    2、Nutch抓取网站页面前的预备工作
  
  (1)在Nutch的安装目录中建立一个名为url.txt的文本文件,文件中写入要抓取网站的顶级网址,即要抓取的起始页。笔者在此文件中写入如下内容:
  
  http://blog.csdn.net/zjzcl
  
  (2)编辑conf/crawl-urlfilter.txt文件,修改MY.DOMAIN.NAME部分:
  
  # accept hosts in MY.DOMAIN.NAME
  +^http://blog.csdn.net/zjzcl
  
    3、运行Crawl命令抓取网站内容
  
  双击电脑桌面上的Cygwin图标,在命令行窗口中输入:
  
  cd /cygdrive/i/nutch-0.7.1
  
  不明白此命令含义的读者请参见前《细解》一文,然后再输入:
  
  bin/nutch crawl url.txt -dir crawled -depth 3 -threads 4 >& crawl.log
  
  等待大约2分多钟后,程序运行结束。读者会发现在nutch-0.7.1目录下被创建了一个名为crawled的文件夹,同时还生成一个名为crawl.log的日志文件。利用这一日志文件,我们可以分析可能碰到的任何错误。另外,在上述命令的参数中,dir指定抓取内容所存放的目录,depth表示以要抓取网站顶级网址为起点的爬行深度,threads指定并发的线程数。
补充: 在这一步有可能抛出参数异常的问题,解决方法修改nutch-default.xml文件http.agent.name的
  
    4、使用Tomcat进行搜索测试
  
  (1)将tomcatwebapps下的ROOT文件夹名改成ROOT1;
  (2)将nutch-0.7.1目录的nutch-0.7.1.war复制到tomcatwebapps下,并将其改名为ROOT;
  (3)打开ROOTWEB-INFclasses下的nutch-site.XML文件,修改成如下形式:
  
  
  

  

  
   
  searcher.dir
  I:/nutch-0.7.1/crawled
   

  

  
  其中的“I:/nutch-0.7.1/crawled”部分,读者应根据自己的设置进行相应修改。
  (4)启动Tomcat,打开浏览器在地址栏中输入:http://localhost:8080,如图1所示:
  
  

点击查看大图

  
  在文本框中输入要害字,就可以进行搜索了。不过用户在使用时会发现,对于英文单词的搜索一切正常,而当要搜索中文词语时会出现乱码。其实这个问题是Tomcat设置的问题,解决办法是修改tomcatconf下的server.xml文件,将其中的Connector部分改成如下形式即可:
  
     enableLookups="false" redirectPort="8443" acceptCount="100"
   connectionTimeout="20000" disableUploadTimeout="true"
   URIEncoding="UTF-8" useBodyEncodingForURI="true" />
  
  现在我们可以对中文词汇进行搜索了。如在搜索框中输入“李开复”,点击搜索按钮后,会搜索到笔者之前写的两篇文章《从李开复换门庭开启的缝隙中窥视——试探Google的几招成功“秘诀”》与《从国内首例禽流感假疫苗大案说起——有感于李开复<做最好的自己>中的诚信观》,如图2所示:
  
  
点击查看大图

  
  假如点击show all hits按钮,则会列出更多相关的搜索结果了。
  
    5、使用Resin进行搜索测试
  
  由于笔者最近工作中经常使用Resin,因此在Tomcat上测试完毕后也想在Resin上测试一把,未曾想碰到了各种意想不到的情况。下面就将所碰到的问题以及解决方法列出,以供碰到相同问题的读者参考。
  
  (1)将nutch-0.7.1目录的nutch-0.7.1.war复制到resin-3.0.17webapps下;
  (2)打开resin-3.0.17conf下的resin.conf文件,把
  
  
  
  下面的内容改成:
  
  
   
   
   
  

  
  (3)打开resin-3.0.17webapps utch-0.7.1WEB-INFclasses下的nutch-site.xml文件,修改成如下形式:
  
  
  
转载:http://school.cnd8.com/java/jiaocheng/14082.htm

你可能感兴趣的:(Nutch 使用之锋芒初试[组图])