nutch1.0在linux系统下部署

总体上Nutch 可以分为2个部分:抓取部分和搜索部分。抓取程序抓
取页面并把抓取回来的数据做成反向索引,搜索程序则对反向索引搜
索回答用户的请求。抓取程序和搜索程序的接口是索引。两者都使用
索引中的字段。实际上搜索程序和抓取程序可以分别位于不同的机器
上。
网页的抓取主要分为2种:Intranet crawling 和Whole-web
crawling。从名字可以很容易明白他们抓取的范围。一般Whole-web
crawling 对配置要求高(面对海量数据,抓取数据和存储空间都至关
重要),花费时间长(几天甚至是几周),我们没有必要做这样的测试。
所以我已抓取我们学校内部网页为例子,来做一个测试。
抓取前的准备工作
输入需要抓取的网站地址
在Nutch 的安装目录中建立一个名为myurl 的文本文件,文件中
写入要抓取网站的顶级网址,即要抓取的起始页。
以我要抓取的网页为例,输入:
http://www.sdu.edu.cn/
注意:最后一个“/”不能少,否则和conf/crawl-urlfilter.txt 中的内容
不匹配,不能运行,http 好像也不能少。
更改配置文件crawl-urlfilter.txt

编辑conf/crawl-urlfilter.txt 文件,修改MY.DOMAIN.NAME 部分,
把它替换为你想要抓取的域名(地址),即把
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
修改为:
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)* sdu.edu.cn /
编辑nutch-1.2\conf\nutch-site.xml
nutch-default.xml里http.agent.name属性默认为空,
所以必须在nutch-site.xml中为该属性设值,否则会出
错(程序抓取页面时,会判断该属性是否为空,如果为空
的话会停止抓取)。因此可类似作如下设置
<configuration>
<property>
<name>http.agent.name</name>
<value>ir.sdu </value>//这里的内容可以是任意的
</property>
</configuration>

运行crawl命令抓取网站内容
做好抓取前的准备,接着就可以使用crawl 命令抓取网页。Crawl 命
令的可选参数如下:
-dir dirnames 设置保存所抓取网页的目录.
-depth depth 表明抓取网页的层次深度
-delay delay 表明访问不同主机的延时,单位为“秒”
-threads threads 表明需要启动的线程数
-topN number 在每次迭代中限制爬行的头几个链接数,默认是
Integer.MAX_VALU
运行结束后,查看log.txt 日志,会有爬虫检索网页的详细信息。
实际使用
改变当前工作区为nutch 安装目录cd /cygdrive/e/IRSoft/nutch-1.2,
然后运行以下命令行:
bin/nutch crawl url.txt -dir mydir -depth 2 -threads 4 -topN 100
>&logs/logs1.log
在上述命令的参数中,url.txt 就是刚才我们创建的那个文件,
存放我们要抓取的网址,dir 指定抓取内容所存放的目录,depth 表示以
要抓取网站顶级网址为起点的爬行深度,threads 指定并发的线程数。
最后的logs/logs1.log 表示把显示的内容保存在文件logs1.log 中,以
便分析程序的运行情况。
如果抓取成功的话,那么在目录mydir 下有5个目录:

1. crawldb
2. Index
3. Indexes
4.linkdb
5 segments
在Tomcat中运行查看结果(在Windows下部署成功)
如果已经抓取成功,则可以在Tomcat 上部署了,具体步骤如下:
1. 复制mydir/segments文件夹到../tomcat5/bin/下
2 复制nutch-1.2.war 到到../tomcat7/webapps/下,并解开(不解开也可
以,Tomcat 运行时将自动解开,所以解开后删除该压缩文件或者将解
压缩文件名命名为nutch-1.2与nutch-1.2.war 名字相同即可,以防
tomcat 运行时再解压一次)
3. 修改/webapps/nutch/WEB-INF/classes/nutch-site.xml :

<nutch-conf>
</nutch-conf>
换成
<nutch-conf>

<property>
<name>searcher.dir</name>
<value>E:\IRSoft\nutch-1.2\mydir</value>
</property>
</nutch-conf>
E:\IRSoft\nutch-1.2\mydir 指刚才抓取网页时网页保存的文件夹
4. 在\Tomcat\conf\Catalina\localhost 下新建立一个xml 文件,该文件名
跟你nutch 文件夹名一样.例如:我的nutch 的文件夹名为nutch-1.2我就
建立一个nutch-1.2.xml 文件.用记事本打开它加入以下文字:
<Context path="my_nutch_path" debug="5" privileged="true"
docBase="nutch-1.2"/>
其中my_nutch_path 为nutch 的安装目录, 比如我的为:
E:\IRSoft\nutch-1.2
(经过实践证明,该步可以省略)
5. 最后在浏览器中输入http://localhost:8080 查看结果(远程查看需
要将localhost 换成相应的IP):

6. 输入查询关键字,查询结果:

7.结果如果出现乱码。我们只需修改一下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,运行。
其他说明
Nutch VS Lucene
Lucene 不是完整的应用程序,而是一个用于实现全文检索的软件库。Nutch 是一个应
用程序,可以以Lucene 为基础实现搜索引擎应用。
Nutch 是基于Lucene 的。Lucene 为Nutch 提供了文本索引和搜索的API。一个常见
的问题是;我应该使用Lucene 还是Nutch?最简单的回答是:如果你不需要抓取数据的话,
应该使用Lucene。常见的应用场合是:你有数据源,需要为这些数据提供一个搜索页面。
在这种情况下,最好的方式是直接从数据库中取出数据并用Lucene API 建立索引。
Nutch 适用于你无法直接获取数据库中的网站,或者比较分散的数据源的情况下使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WitsMakeMen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值