论坛首页 Java企业应用论坛

Nutch的配置使用

浏览 5285 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-04-10   最后修改:2009-04-10
先介绍下:Nutch主要分为两个部分:爬虫crawler和查询searcher。Crawler主要用于从网络上抓取网页并为这些网页建立索引。Searcher主要利用这些索引检索用户的查找关键词来产生查找结果。两者之间的接口是索引,所以除去索引部分,两者之间的耦合度很低。
  Crawler和Searcher两部分尽量分开的目的主要是为了使两部分可以分布式配置在硬件平台上,例如将Crawler和Searcher分别放在两个主机上,这样可以提升性能。


环境:JDK1.6  Centos 5

把Nutch下下来后解压
在Nutch的安装目录中建立一个名为url.txt的文本文件,文件中写入要抓取网站的顶级网址,即要抓取的起始页。在此文件中写入如下内容:
http://www.hao123.com

编辑conf/crawl-urlfilter.txt文件:
# accept hosts in MY.DOMAIN.NAME
+^(不填说明对url没有限制,都可以被抓取)

然后在Nutch的安装目录下:
bin/nutch crawl url.txt -dir crawled -depth 3 -threads 4 >& crawl.log
等待程序运行结束后。我们会发现在Nutch目录下被创建了一个名为crawled的文件夹,同时还生成一个名为crawl.log的日志文件。利用这一日志文件,我们可以分析可能遇到的任何错误。

另外,在上述命令的参数中
dir指定抓取内容所存放的目录
depth表示以要抓取网站顶级网址为起点的爬行深度
threads指定并发的线程数

抓取完后,我们可以进行测试了,nutch它本身就带了一个war文件,它是一个web项目,稍加改进就能做成自己的搜索引擎

把Nutch目录下的nutch-0.9.war复制到tomcat\webapps下


打开nutch-0.9\WEB-INF\classes下的nutch-site.xml文件,修改成如下形式:
   
  <?xml version="1.0"?>
  <?xml-stylesheet type="text/xsl" href="nutch-conf.xsl"?>

  <!-- Put site-specific property overrides in this file. -->

  <nutch-conf>
   <property>
    <name>searcher.dir</name>
    <value>/user/local/nutch/crawled</value>(爬下来的索引地址)
   </property>
  </nutch-conf>

还要解决Nutch的中文乱码问题:
其实这个问题是Tomcat设置的问题,解决办法是修改tomcat\conf下的server.xml文件,将其中的Connector部分改成如下形式即可:

<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true"
               URIEncoding="UTF-8" useBodyEncodingForURI="true" />


启动Tomcat,打开浏览器在地址栏中输入:http://localhost:8080/nutch-0.9
就会出来界面了,也可以输入你想要查找的关键字,Nutch很强大,还提供的网页快照等功能。

注:nutch的0.9版本的jsp会报错。
只要根据提示在那条语句的引号(”)前加个转义符"\"就行了。


论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics