Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2566710
  • 博文数量: 709
  • 博客积分: 12251
  • 博客等级: 上将
  • 技术积分: 7905
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-17 00:00
个人简介

实现有价值的IT服务

文章存档

2012年(7)

2011年(147)

2009年(3)

2008年(5)

2007年(74)

2006年(431)

2005年(42)

分类: Java

2006-12-05 14:54:19

一 系统要求
下面是Nutch文档的说明
1.Java 1.4.x, either from Sun or IBM on Linux is preferred. Set NUTCH_JAVA_HOME to the root of your JVM installation.
2.Apache′s Tomcat 4.x.
3.On Win32, cygwin, for shell support. (If you plan to use CVS on Win32, be sure to select the cvs and openssh packages when you install, in the "Devel" and "Net" categories, respectively.)
4.Up to a gigabyte of free disk space, a high-speed connection, and an hour or so.
关于第一项,我也不清楚是说JAVA的J2SE版本还是J2EE版本。上一次我用J2SE的时候就没有成功。但这并不能确定一定和JAVA版本有关。这里我使用的是J2EE5.0(前几天研究什么东西刚下的,顺便拿来用,呵呵)JAVA在LINUX的安装可以参考我以前的BLOG。然后就是设定系统环境变量NUTCH_JAVA_HOME了。
#vi /etc/profile

加入下面内容:
NUTCH_JAVA_HOME="/usr/local/j2ee1.5/jdk"
EXPORT最后加入 NUTCH_JAVA_HOME

第二项安装TOMCAT很简单,下载binary包解压即可。我用的是tomcat5.0.28
第三项我们用的是Linux不用管Windows的设置
第四项预留足够的硬盘空间(G字节级别)。我只搜我的小站,估计也占用不了多少空间^_^

二 安装使用Nutch
1.安装
下载Nutch-0.6.tar.gz
#tar zxvf Nutch-0.6.tar.gz
#mv Nutch-0.6 /usr/local/nutch
测试Nutch
#/usr/local/nutch/bin/nutch
出现几行提示信息,说明安装成功

2.抓取页面
我只做了内部网(Intranet)的测试
在 nutch 目录中创建一个包含该网站顶级网址的文件 urls ,包含如下内容:
(我的主机的内网网址,这里用我以前架的LAMP测试)

#cd /usr/local/nutch
#touch urls
#vi urls
加入 保存退出

然后编辑conf/crawl-urlfilter.txt 文件,设定过滤信息
+^
保存退出以后开始抓取了!

#bin/nutch crawl urls -dir lystudio.test -depth 2 -threads 4 >& crawl.log

depth 参数指爬行的深度,这里处于测试的目的,选择深度为 2 ;
threads 参数指定并发的进程 这是设定为 4
只过了2分钟,爬完了(站太小了……)

之后配置 Tomcat (我的 tomcat 安装在 /usr/local/tomcat5) ,

# rm -rf /usr/local/tomcat5/webapps/ROOT*
# cp nutch-0.6.war /usr/local/tomcat5/webapps/ROOT.war
# cd /usr/local/tomcat5/webapps/
# jar xvf ROOT.war
# ../bin/catalina.sh start
浏览器中输入 查看结果(远程查看需要将 localhost 换成相应的IP):



出现了页面!不过测试发现不能正常搜索页面,并出现以下错误:

500 Servlet Exception
java.lang.NullPointerException
at net.nutch.searcher.NutchBean.init(NutchBean.java:82)
.....

去Nutch Wiki找资料,据说是segment文件夹位置的问题。默认的是./segment所以我们应该修改为实际的地址。我的是
/usr/local/nutch/lystudio.test/segment
解决方法是这样描述的:
找到tomcat的ROOT目录下的一个文件:nutch-site.xml

#vi /usr/local/tomcat5/webapps/ROOT/WEB-INF/classes/nutch-site.xml

修改成下面样式:








searcher.dir
/usr/local/nutch/lystudio.test
My path to nutch′s searcher dir.



然后重启TOMCAT,终于可以搜索了:



至此我的测试已经完成。关于中文搜索,以后有时间再做(可以发现,上面页面的中文在Firefox1.0.5下有问题,调整页面编码也没有起作用,应该是Nutch配置中修改吧)。
=========================
关键字:   nutch    

最近用到了nutch,目的是针对指定的一些网站抓取其内容,然后做分析用。
nutch 笔记是我使用nutch过程一系列总结,写下自己的学习经过和大家一起分享,也希望能得到大家的指点

好了,废话少说,言归正传,第一篇:Quick Start,我们的目标是快速的能跑起来,能检索出我们想要的结果。

首先要明白nutch是什么?
nutch是一个基于lucene的开源搜索引擎,它包括了所有你想要的东西,是一个完整的解决方案 。

一:安装JDK
如果你已经安装了JDK,并且已经设置了JAVA_HOME,那么跳过这一步
安装jdk

代码
  1. sudo apt-get install sun-java5-jdk  

或者从sun公司网站下载bin文件执行安装

设置了JAVA_HOME

代码
  1. sudo vi ~/.bashrc  

在最后面增加
代码
  1. export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun   
  2. export PATH=$PATH:$JAVA_HOME/bin   

二:下载nutch的最新版本nutch0.8.1

代码
  1. wget http://apache.justdn.org/lucene/nutch/nutch-0.8.1.tar.gz  

释放下来即可

代码
  1. tar zxvf nutch-0.8.1.tar.gz  

三:抓取页面
增加url

代码
  1. cd nutch-0.8.1  
  2. mkdir urls   
  3. echo http://   

编辑conf/crawl-urlfilter.txt,修改MY.DOMAIN.NAME为

代码
  1. +^http://([a-z0-9]*\.)*xici.net/   

修改conf/nutch-site.xml,增加http.agent.name值

代码
  1. <property>  
  2.    <name>http.agent.namename>  
  3.    <value>test/uniquevalue>  
  4. property>  

执行bin/nutch crawl开始抓取页面

代码
  1. sudo bin/nutch crawl urls -dir crawl -depth 5 -topN 50&   

这个过程需要等待一些时间

三:检索
安装tomcat,我们使用apache网站上的包

代码
  1. cd ..   
  2. wget http://mirror.vmmatrix.net/apache/tomcat/tomcat-5/v5.5.20/bin/apache-tomcat-5.5.20.tar.gz   
  3. tar zxvf apache-tomcat-5.5.20.tar.gz   

将nutch自带的war文件拷贝到webapps下面

代码
  1. rm -rf apache-tomcat-5.5.20/webapps/ROOT*   
  2. cp nutch-0.8.1/nutch*.war apache-tomcat-5.5.20/webapps/ROOT.war  

运行tomcat,如果不设定nutch-site.xml的searcher.dir的值,则需要在crawl目录下面执行

代码
  1. sudo ${TOMCAT的目录}/bin/startup.sh  

我们也可以设定nutch-site.xml的searcher.dir的值

代码
  1. sudo vi ${TOMCAT的目录}/webapps/ROOT/WEB-INF/classes/nutch-site.xml   

增加

代码
  1. <property>  
  2.   <name>searcher.dirname>  
  3.   <value>/home/martin/doc/nutch-0.8.1/crawlvalue>  
  4. property>  

四:中文乱码
修改tomcat的server.xml,在Connector的tag最后增加

代码
  1. URIEncoding="UTF-8"  

五:截图

==============================
关键字:   nutch    

一:Recrawl
nutch wiki上有现成的script,我们只需要拿来用用即可

把它放在nutch-0.8.1/bin/recrawl.sh

代码
  1. martin@martinx:~/workspace/doc/nutch-0.8.1$ sudo bin/recrawl.sh ../tomcat5/webap ps/ROOT xici/    
  2. 10 1 5  

wiki中对参数的说明已经很详细了,没有必要再多说了。这里有个参数../tomcat5/webap你可以看到脚本中只是

代码
  1. touch $tomcat_dir/WEB-INF/web.xml   

让tomcat重新加载webapp,如果你没有使用tomcat,只是crawl,你修改一下脚本,就把这个参数给去掉吧。

二:Crawl more urls and merge
我们上面只是抓取了一个xici的页面,但是我们的目标不仅仅是一个,而是一系列的,所有我们必须增加新的url进行抓取。

新增news.163.com

代码
  1. mkdir url2   
  2. echo http://news.163.com>url2/163   

重新执行我们上面提到的crawl

代码
  1. martin@martinx:~/workspace/doc/nutch-0.8.1$ sudo bin/nutch crawl url2 -dir 163 -depth 10 -topN 50  

note:
这个时间会很长,如果你愿意可以用别的资讯很少的网站代替

合并我们采用nutch wiki上的脚本保存到bin/mergecrawl.sh。

代码
  1. martin@martinx:~/workspace/doc/nutch-0.8.1$ bin/mergecrawl.sh newpath 163/ xici/  

传递的两个参数分别是两次crawl的目录

修改tomcat目录下的classes/nutch-site.xml文件,将searcher.dir修改为新的索引目录

代码
  1. perl -pi -e 's|xici|newpath|' ../tomcat5/webapps/ROOT/WEB-INF/classes/nutch-site.xml  

重新加载webapp

代码
  1. touch ../tomcat5/webapps/ROOT/WEB-INF/web.xml  

以下是截图
这个是163的

这个是xici的

==============================

Nutch-0.8于2006年7月25日在其官方网正式发布,此版本在以前的基础了做了很大改进。因此在进行crawling时上不能完全照以前各版本的方法进行。本人已成功安装和使用,具体如下。共享出来希望对搜索引擎爱好者有一定帮助。(因为字数限制,所以分三个帖子发出,见谅!)
辅助软件
1、Java 1.4.x ;
2、Apache's Tomcat 4.x ;
3、Cygwin ;
使用
1、新建环境变量或添加环境变量新值
PATH= F:\nutch-0.8\bin; (NUTCH-0.8的安装路径)
JAVA_HOME = C:\Program Files\Java\jdk1.5.0_07 (JDK的安装路径)
NUTCH_HOME= F:\cygwin (On windows, using cygwin the default NUTCH_HOME is at \\cygdrive\)
(*环境变量值依据读者具体情况设定)
2、运行crawl命令
①在nutch-0.8的安装目录下新建一个文件夹,例如取名search。然后在此文件夹内建立一个文本文件命名为urls.txt。该文件的内容为所要进行crawl的网站地址,例。(以前版本不需先建立一个文件夹,直接建文本文件就行。但在0.8版本里不先建立文件夹crawl命令就会出错)。
②修改nutch-0.8\conf\crawl-urlfilter.txt,把文件中的MY.DOMAIN.NAME全部替换成163.com 。
③修改nutch-0.8\conf\nutch-site.xml,

http.robots.agents



http.agent.name

<


http.agent.url


(*在以前的版本中不需对此文件修改)
④在cygwin中运行命令:
bin/nutch crawl search -dir f:/nutch-0.8/crawled -depth 3 -topN 200
3、将tomcat\webapps下的ROOT文件夹删除。
4、把nutch-0.8文件夹下的Nutch-0.8.war文件解压到Tomcat\webapps中。并将其名改正为ROOT。
在Tomcat\conf\Catalina\localhost下新建立一个xml文件,该文件名跟你nutch文件夹名一样。输入内容:
5、进入Tomcat\webapps\ROOT\WEB-INF\classes文件夹,修改该目录下的nutch-site.xml文件。修改如下:

searcher.dir
your_crawled_folder_here

6、进入Tomcat 5.0\webapps\nutch-0.8\WEB-INF\classes文件夹,修改该目录下的nutch-site.xml文件。修改如下:














searcher.dir





your_crawled_folder_here















(*在以前版本中不需要此操作)
7、为了进行中文搜索需修改tomcat/conf/下的server.xml文件中的CONNETOR部分,修改如下:


8、复制nutch-0.8\crawled\segments文件夹到..\tomcat5\bin\下。

9、进入Tomcat\bin文件夹:双击startup.bat批处理文件让它运行。

10、打开浏览器。输入
11、在搜索栏中输入搜索关键词“体育”(共有168项结果)。

阅读(2010) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~