Nutch0.9安装指南

系统 1608 0



 终于!我把 Nutch0.9 的安装文档贴出来了

首先提醒的是,按照这个步骤做还是会遇到各种莫名奇妙的问题,没关系,按照步骤查找,一定有地

方出错了,从出错的地方重新做吧。 ( 连我自己每次重新安装的时候还是会遇到各种问题,所以过程

一定要细心啊! )
   

直接上过程:

1 、首先,我的配置: JDK1.6 Tomcat6.0 Nutch0.9

2 、添加 JAVA_HOME CATALINA_HOME 系统变量 ( 这个如果真不会的话自己百度吧 )

3 、安装 Cygwin

   Nutch 最初是在 Linux 系统下开发的,所以要在 windows 环境下部署,必须使用这个软件来模拟仿真

系统环境。
        
下载了 Cygwin 后,双击 setup.exe 运行,在“选择下载资源”的对话框处有几个选项:从

Internet 安装、下载不安装、从本地安装。一般是第一个选项,如果已经安装包已经下载到了本地,

那么选择第 三个。之后设置好安装路径按默认的设置安装即可。   

安装成功运行如图:

  Nutch0.9安装指南

 

4 Nutch 是用 Java 语言开发的,在运行 Nutch 之前,必须告诉 Nutch 系统的 JDK 在哪。所以还需要设置

一个环境变量 NUTCH_HOME ,值同 JAVA_HOME 一致。

设置好了可以通过 Cygwin 测试 Nutch 是否可以运行。

     1.  运行 Cygwin

     2.  输入: cd  /cygdrive/*/nutch-0.9 (nutch 所在的路径 ) PS Cygwin 不支持 Unicode 字符

集,所以在设置 Nutch 路径时,要保证其中没有中文字符

     3.  测试 Nutch 命令: bin/nutch 。如果 Nutch 安装正确,则此命令会返回所有的 Nutch 可执行命

令结果


Nutch0.9安装指南
 

 

这时 Nutch 已经可以运行,通过 Cygwin 运行 Nutch 的底层命令,已经可以进行抓取、索引、排序、检索等功能。但是做进一步的开发还需要进一步的修改。

 


    5 、将 Nutch 导入 Eclipse
     
同导入其他 Eclipse 工程的过程一样,不过要注意几点:

      (1)
Nutch 的配置文件加入到工程的 Librares 中,在 Libraries 选择 Add Classic Folder 。并在第

四个面 板“ Order and Export ”中,把 conf 置顶
      (2)
output dir 改为: tmp_build
      (3)
导入完成

      (4)
但编译还是不会通过的,因为 Nutch 包含的 rtf mp3 包和 Nutch 使用的是不同的开源协议,所以

我们需要单独下载这两个包,把他们添加进工程中。下载地址为:
       http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-mp3/lib/  
       
http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-rtf/lib/

 

 

      6 Nutch 的配置文件

      Nutch 的基本配置文件都在 conf 文件夹下,之前已经把它添加到 Class Folder 中了

      nutch-default.xml :我们会用到最多的配置文件,一定要好好读读其中的内容

      crawl-urlfilter.txt Nutch 抓取是的一些策略设置

      nutch-site.xml :抓取时提交给被爬行网站的信息

      ………………

      最好自己都读一下这些配置文件的内容并了解它们的作用

 

      7 、建立网页抓取入口

      在工程文件夹下新建一个文本文件做为爬虫抓取网页的入口: weburl.txt

      这里我是在 Tomcat 下部署了一个网站用做测试,各位照样子填吧

      http://localhost:8080/computernetwork/index.html

 

 

      8 、修改配置文件

      (1) 打开 conf 下的 nutch-default.xml 文件,这里我们要修改其中的一个属性: plugin.folders

      把它修改为“ .\plugins ”。它的设置告诉 Nutch 应该到哪里去查找插件。

 

      (2)

      修改 crawl-urlfilter.txt

 

# skip image and other suffixes we can't yet parse

-\.

(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|

exe|jpeg|JPEG|bmp|BMP|swf|doc)$

这是 Nutch 抓取网页时默认忽略的文件类型

 

# accept hosts in MY.DOMAIN.NAME

#+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/

这是 Nutch 抓取是的限制访问策略。比如我的是: +^http:// localhost:8080/computernetwork/

那么如果抓取的网页中含有链接到其他站点的 URL Nutch 不会去抓取这些网页。

 

 

(3)

修改 nutch-site.xml

写道
<property>
<name>http.agent.name</name>
<value>Local</value>
<description>HTTP 'User-Agent' request header. MUST NOT be empty - please set this to a single word uniquely related to your organization. NOTE: You should also check other related properties:
http.robots.agents
http.agent.description
http.agent.url
http.agent.email
http.agent.version
and set their values appropriately.
</description>
</property>
<property>
<name>http.agent.description</name>
<value> Local web</value>
<description>Further description of our bot- this text is used in
the User-Agent header. It appears in parenthesis after the agent name.
</description>
</property>
<property>
<name>http.agent.url</name>
<value>http://MyCom.com</value>
<description>A URL to advertise in the User-Agent header. This will appear in parenthesis after the agent name. Custom dictates that this should be a URL of a page explaining the purpose and behavior of this crawler.
</description>
</property>
<property>
<name>http.agent.email</name>
<value> Your mail@*.com</value>
<description>An email address to advertise in the HTTP 'From' request header and User-Agent header. A good practice is to mangle this address (e.g. 'info at example dot com') to avoid spamming.
</description>
</property>

 

 

 

9 、配置 Eclipse 运行参数

Run as ”— > Run Configuration ” — > Java Application     


Nutch0.9安装指南
 
 

Arguments面板中:

Program arguments 中,参数为:

weburl.txt  -dir  Local depth 5 topN 100 threads 100

   指的是爬虫爬取网页的地址入口在 weburl.txt 中设置,爬取的网页、索引等信息存在本地 Local

夹中,爬虫爬取的深度为: 5 ,每层只爬取前 100 个网页,同时开 100 个线程进行爬取。

 

VM arguments 中,设置参数为:

    -Dhadoop.log.dir=logs Dhadoop.log.file=hadoop.log Xmx512m

    这设置的是爬取过程的 Log 日志记录地址。另外,爬取网页过多时 Nutch 会出现 JavaVM 溢出的错

误, 因此经常还需在此处设置 JavaVM 参数,如: -Xmx512m ,即为 JAVA 虚拟机分配内存大小为 512M

 

 

10 、运行。

运行之后,在 Nutch 中的 Local 文件夹下会生成 5 个文件夹:

    crawldb :下载的 URL 及下载日期,用于存放页面更新的检查时间。

    linkdb :存放 URL 的互联关系,是下载完成后分析得到的。

    segments: 存放抓取的页面。下面的子目录数与获取页面层数有关。通常是一层一个文件夹。

    indexs :存放每次下载的独立索引目录。

    index :符合 Lucene 格式的索引目录,是 indexs 里所有 index 合并后的完整索引。

 

11 、部署到 tomcat

(1) 打开 ANT 面板,打开添加 Buildfiles 对话框,将 Nutch build.xml 添加进来。

 

(2) 重新运行 job default )或者 war 。此处会出现一个 build failed 错误,出现在文件中的:

<touch datetime="01/25/1971 2:00 pm">
      <fileset dir="${conf.dir}" includes="**/*.template"/>

</touch>

    原因是因为在 Nutch 工程中没有 *.template 文件,所以可以把这几句删除掉 ( 也不需要去下载这

几个文件。如果使用了这几个文件,每次编译后曾经修改过的配置文件会被改回模板中的原始值。 )

 

(3) build 文件夹下的 nutch-0.9.war 复制到 CATALINA_HOME 下的 webapps 下,重新启动 Tomcat ,将生

成的 nutch-0.9 文件夹放到 ROOT 文件夹下。

      访问: http://localhost:8080/nutch-0.9

(我是将 nutch 文件夹下的所有文件直接放在了 ROOT 文件夹下,所以直接访问 http://localhost:8080/

 

 

 

12 、开始搜索

CATALINA_HOME\webapps\ROOT\nutch-0.9\WEB-INF\classes 下,找到 nutch-site.xml

添加属性:

<property> 

 <name>searcher.dir</name>
        <value>E:\nutch-0.9\Local</value>----------
注: nutch 工程下抓取时设置的文件夹位置

</property>

这个属性告诉 Tomcat 到哪里去找 Nutch 索引。
 

 

 

------ 想搜索吗? No !还有东西要改!

 

这时要是直接搜索, Tomcat 会提示你:
org.apache.jasper.JasperException: /search.jsp(151,22) Attribute value  language + "/include/header.html" is quoted with " which must be escaped when used within the value

 

找到 search.jsp 下的 151 行,把引号转义吧。。。。

<jsp:include page="<%= language + \"/include/header.html\"%>"/>

 

 

想搜索吗?可以试一下

 

结果是——英文可以了,但是中文会出现乱码

 

还得改。。。。那就改吧

 

CATALINA_HOME\conf 下找到 server.xml

修改 Connector port="8080" protocol="HTTP/1.1" 属性中的值,添加两句:

URIEncoding="UTF-8" useBodyEncodingForURI="true"
 

 

----------------------------------------

Oh My God !终于可以搜了!!!撒花庆祝吧!这里是真的可以了  
 

可是只有这些吗?

No !这只是搭建一个基本的基于Nutch的搜索平台。实际上基于Nutch还有很多可以做和扩展。

PS :这些都是百度、 Google 出来的各种方法的整理,本人已经实践过多次,绝对可以部署实施,但是过程中可能还是会出现各种问题,大家耐心的修改吧!

由于时间稍久,中间可能存在疏漏,而且对 Nutch 学习也并不深入,如发现错误,欢迎大家交流指正!

 

Nutch0.9安装指南


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论