昨晚睡得很早,却始终无心入眠。
一直很想尝试下nutch,却总是说事情太多,没精力去做。
这学期给了自己太多的无奈,看不到目标,很迷茫。
半小时后,终究还是起床。
lucene和nutch早已在硬盘里,上网看资料教材,照着弄了半天,总算出了最初的结果。
结合几篇教程做个总结吧。
首先是软件,我是用的是nutch1.0。将文件解压放到D:/nutch/nutch-1.0中。
然后是cygwin,用于在windows中执行linux命令,昨凌晨在线安装了很久...尤其是到90%的时候停止了,超级崩溃。选了它的第二个链接从新开始,估计是在凌晨3点左右搞定了。
最初测试:
在Cygwin中进入D:/nutch/nutch-1.0,输入bin/nutch
显示:usage:nutch COMMAND即一切还顺利~
貌似会有异常抛出,暂时不理~
开始配置
在D:/nutch/nutch-1.0下建文件夹urls,在此文件夹下建文本文件nutch.txt,其中的内容为:http://lucene.apache.org/nutch/,就是抓取网页的入口位置,据说可以多个地址或者多个文件,还未尝试~
打开D:/nutch/nutch-1.0/conf/crawl-urlfilter.txt,找到MY.DOMAIN.NAME,修改为:
+%5Ehttp://([a-z0-9]*/.)*apache.org/
这应该是它抓取链接的过滤设置,此处可以看到只有apache.org/结尾的链接才会被抓取
配置nutch-default.xml:
找到property标签,将其中<value>空着的部分填写完整,<description>中是对此项的描述,下面是我的写法:
然后,就要开始抓去啦..
Cygwin下执行:
bin/nutch crawl urls -dir crawled -depth 3 -topN 50 >&crawl.log
意思是从urls文件夹中读取地址开始抓取,抓取结果放入crawled文件夹中,抓取深度为3,topN貌似是最大节点数,执行的过程输出到crawl.log文件中。
执行第一次,失败,原来没有JAVA_HOME环境变量,将jdk的安装目录添加上,ok。
执行再次失败,提示D:/nutch/nutch-1.0/crawled/crawldb/current/data没有找到。进入后发现只有文件夹part-00000,里面有个data文件,死马当活马医,拷出来放到current文件夹下,运行,终于开始抓取了~
抓取结束后,需要启动tomcat查看结果。
将nutch1.0文件夹下的nutch1.0.war文件拷贝到tomcat的webapp文件下中,改名为nutch.war,启动tomcat后tomcat会将其解压为nutch文件夹。
进入解压后的webapps/nutch/WEB-INF/classes目录,将<configuration>标签中的nutch-site.xml的search.dir设置为D:/nutch/nutch-1.0/crawled;即抓取来数据的存放位置。
我的配置:
至此,即可启动tomcat,输入localhost/nutch进行搜索了~
这些都还只是皮毛,接下里要做更多研究了,刚测试了一下,中文分词采用的是切成一个个的字,看来得替换,我用过的中文切词包有庖丁解牛和IKanalyser,还没在nutch上试过呢,值得去试~
参考教程:
主要参考:
http://www.360doc.com/content/07/0531/13/23378_530951.shtml
其他的:
http://blog.csdn.net/fiwiner/archive/2009/10/19/4699947.aspx