windows下安装nutch

上学期跟同学一起做了个校园搜索引擎,虽然最后是用lucene做的,但开始的时候还是安装了nutch,安装的经验不能浪费了,所以也发布出来。

准备软件:

jdk1.5.4   

apache-tomcat-6.0.29

nutch-0.9

Cygwin

1:首先安装JAVA  (E:/Lycos/jdk1.5.0_04)  

安装完成后 

设置环境变量  JAVA_HOME = E:/Lycos/jdk1.5.0_04

CLASSPATH=.;E:/Lycos/jdk1.5.0_04/lib/tools.jar;E:/Lycos/jdk1.5.0_04/lib/dt.jar;E:/Lycos/jdk1.5.0_04/bin;

2:安装Cygwin  (E:/Lycos/cygwin)

在第一次安装时:需要先从镜像点上下载相关文件。



再次运行程序即可安装成功。

解压 tomcat-6.0.29  (E:/Lycos/tomcat-6.0.29)

4: 解压 nutch-0.9  (E:/Lycos/cygwin/nutch-0.9)

设置环境变量 NUTCH_JAVA_HOME=" E:/Lycos/jdk1.5.0_04"

<1> 创建目录 

nutch/bin 目录下创建一个urls目录,然后在目录里面新建一个文件,文件名为 “url.txt,内容为你要爬行的网站如:http://www.sina.com.cn

<2>修改nutch/conf/crawl-urlfilter.txt文件

打开nutch/conf/crawl-urlfilter.txt文件,把MY.DOMAIN.NAME字符替换为url.txt内的url的域名,其实更简单点,直接删除MY.DOMAIN.NAME这几个字就可以了,也就是说,只保存+^http://([a-z0-9]*/.)*这几个字就可以了,表示所有http的网站都同意爬行。

或者:+^http://([a-z0-9]*/.)*sina.com.cn/

注意如果直接删除MY.DOMAIN.NAME。不要保留删除后的/

<3>修改nutch/conf/conf/nutch-site.xml文件

    打开nutch/conf/conf/nutch-site.xml文件,在<configuration></configuration>内插入一下内容:注:如果是sina.com.cn value 的值修改为:http://www.sina.com.cn

         <property>

                         <name>http.robots.agents</name>

                         <value>http://www.sina.com.cn /klms</value> 

         </property>

         <property>

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

                         <value>http:// www.sina.com.cn /klms</value>

         </property>

         <property>

                         <name>http.agent.url</name>

                         <value>http:// www.sina.com.cn /klms</value>

         </property>

 

     把<name>XXX</name>之间的内容替换为其他字符,当然就算是不替换也无所谓,这里的设置,是因为nutch遵守了robots协议,在获取response时,把自己的相关信息提交给被爬行的网站,以供识别。

<4>修改nutch/conf/nutch-default.xml

打开nutch/conf/nutch-default.xml 文件,找到<name>http.agent.name</name> ,然后把Value值随便设计一个。

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

 <value>sina</value>

以上配置,是爬取intranet的配置方式。

<6>执行nutch

由于配置nutch采用的是单独网站的配置方式,所以执行上我们也采用的是单网查询

先看一看nutch给出的命令:nutch crawl urls -dir crawl -depth 3 -topN 50

crawl:通知nutch.jar,执行crawlmain方法。

urls:存放需要爬行的url.txt文件的目录,注意,这个名字需要和你的文件夹目录相同,如果你的文件夹为search,那这里也应该改成search

 -dir crawl:爬行后文件保存的位置,可以在nutch/bin目录下找到。

-depth 3:爬行次数,或者成为深度,不过还是觉得次数更贴切,建议测试时改为1

 -topN 50:一个网站保存的最大页面数。

      执行命令的步骤:

1.  进入cygwin界面。

2.  使用cd命令,进入nutch/bin路径下。

3.  执行:sh nutch crawl urls -dir crawl -depth 3 -topN 50

4.  具体的爬行日志可以在nutch/logs目录下看到,注意查找“INFO  fetcher.Fetcher - fetching http://XXXXXXX”这样的内容,这里是抓去过程日志。

<7>  配置tomcat

nutch压缩包下找到nutch-0.9.war文件,放到tomcat/webapps目录下, 启动tomcatwebapps/nutch/WEB-INF/classes/nutch-site.xml文件中的<configuration></configuration>内插入一下内容

<property>

<name>searcher.dir</name> <value>E:/Lycos/cygwin/nutch-0.9/bin/crawl</value> 

</property>

   <value/>的内容是刚才爬行后的crawl目录位置,提供给客户端来查询。

<8>解决中文乱码

打开tomcat 目录下的conf/server.xml ,解决中文问题。(0.9中好像没出现乱码)

<Connector port="8880"

   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

   enableLookups="false" redirectPort="8443" acceptCount="100"

   debug="0" connectionTimeout="20000" 

disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true" />

<9> 配置完成后,关闭启动tomcat 再启动tomcat。 访问http://localhost:8080/nutch-0.9 即可。

这里提醒一下:当第一次启动的时候,可能会出现如下错误:

org.apache.jasper.JasperException: /search.jsp(151,22) Attribute value  language + "/include/header.html" is quoted

解决办法:

搜索 search.jsp 文件

找到151行: 

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

改成这样: 

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值