首页  |  讨论区  |  Java文栏  |  Java源代码  |  Java开源  |  Java下载  |  Web开发  |  数据库技术  |  编程语言  |  Linux  |  业界  |  Wiki
 首页 » Java文栏 » Open Source
Nutch 笔记
    发表于:2006-10-28  来自:http://martin.javaeye.com/blog/   阅读:

Google
 
Nutch 笔记 - IdeaGrace | Java文栏 | Open Source,IdeaGrace,web,开发,技术,交流,教程 - http://www.ideagrace.com/
关键字:   nutch    

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

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

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

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

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

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

设置了JAVA_HOME

代码
 sudo vi ~/.bashrc

在最后面增加
代码
 

export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
export PATH=$PATH:$JAVA_HOME/bin

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

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

释放下来即可

代码
 tar zxvf nutch-0.8.1.tar.gz

三:抓取页面
增加url

代码
 

cd nutch-0.8.1
mkdir urls
echo http://www.xici.net>>urls/xici

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

代码
 

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

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

代码
 

<property>
<name>http.agent.name</name>

<value>test
/unique</value>

<
/property>

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

代码
 

sudo bin/nutch crawl urls -dir crawl -depth 5 -topN 50&

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

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

代码
 

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

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

代码
 

rm -rf apache-tomcat-5.5.20/webapps/ROOT*
cp nutch-0.8.1/nutch*.war apache-tomcat-5.5.20/webapps/ROOT.war

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

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

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

代码
 

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

增加

代码
 

<property>
<name>searcher.dir</name>

<value>
/home/martin/doc/nutch-0.8.1/crawl</value>

<
/property>

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

代码
 URIEncoding="UTF-8"

五:截图

-----------------------
nutch site:http://lucene.apache.org/nutch
nutch wiki:http://wiki.apache.org/nutch/

Nutch 笔记(二):Craw more urls and Recrawl
关键字:   nutch    

一:Recrawl
nutch wiki上有现成的script,我们只需要拿来用用即可
http://wiki.apache.org/nutch/IntranetRecrawl#head-e58e25a0b9530bb6fcdfb282fd27a207fc0aff03

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

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

10 1 5

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

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

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

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

新增news.163.com

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

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

代码
 

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

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

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

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

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

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

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

重新加载webapp

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

以下是截图
这个是163的

这个是xici的




喜欢本文?那就在线订阅更多文章更新吧!
加入技术论坛讨论
访问IdeaGrace开发者博客
浏览更多java开源项目
IdeaGrace开发者Wiki

更好的浏览体验,


关于Idea Grace | 版权声明 | 联系我们 | 友情链接
©2008 Idea Grace