Nutch和Solr是两个由Apache成员创建的实用工具,你可以使用Nutch抓取网页,使用Solr索引你得到的数据。
除了索引各类网站,这些工具还有很多其他功能,本文将不涉及这些,而是一篇针对如何使用Nutch抓取网页并使用Solr索引并搜索你抓取的数据的新手指南。
本文将不会讨论它们如何工作的大量细节,而会告诉你如何运行一个爬虫和建立索引,我将假设你已经搭建好了tomcat服务器。
1、确认你已正确安装JAVA并正确设置了JAVA_HOME和CLASSPATH变量。
2、下载并解压apache-nutch-1.3-bin.tar.gz(http://nutch.apache.org)和apache-solr-3.3.0.gz(http://lucene.apache.org/solr/)到不同的文件夹下。
3、设置Nutch:编辑NUTCH_ROOT/conf/nutch-default.xml,设置http.agent.name的value为你的爬虫的名字。
4、设置Solr:拷贝NUTCH_ROOT/conf目录下所有文件至SOLR_ROOT/example/solr/conf,覆盖任何可能存在的文件。
<requestHandler name="/nutch"class="solr.SearchHandler" >
<lst name="defaults">
<strname="defType">dismax</str>
<strname="echoParams">explicit</str>
<floatname="tie">0.01</float>
<str name="qf">
content^0.5 anchor^1.0 title^1.2
</str>
<str name="pf">
content^0.5 anchor^1.5 title^1.2 site^1.5
</str>
<str name="fl">
url
</str>
<str name="mm">
2<-1 5<-26<90%
</str>
<intname="ps">100</int>
<strname="q.alt">*:*</str>
<str name="hl.fl">title urlcontent</str>
<strname="f.title.hl.fragsize">0</str>
<strname="f.title.hl.alternateField">title</str>
<strname="f.url.hl.fragsize">0</str>
<strname="f.url.hl.alternateField">url</str>
<strname="f.content.hl.fragmenter">regex</str>
</lst>
</requestHandler>
5、启动Solr:$ cd SOLR_ROOT/example
6、启动爬虫:$ cd NUTCH_ROOT
你可以设置任意数字,一般情况下数字越大抓取的数据越多。抓取的时间也越长。
例如,下面这个抓取命令可能要用上一两天时间
7、索引抓取结果:
$ bin/nutch solrindex http://HOST_ADDRESS:8983/solr/crawl/crawldb crawl/linkdb crawl/segments/*
这里的端口号和下面提到的端口号依据你的服务器设置而定,访问http://HOST_ADDRESS:8983/solr/admin,查看缺省的Solr管理面板,搜索索引。
当你到达结果页后,你可以在地址栏看到url,点击url你也可以看到XML的结果。
依据以上步骤,你将拥有你自己的一个迷你搜索引擎。它将只会搜索你所指定的网址,但你了解更多后,你将发现Nutch和Sorl能帮你实现更多神奇的事情。
转自:http://blog.sina.com.cn/s/blog_591a31d20100s6jh.html