注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

长风明志的博客

不要也不能做下一个谁,应该且可以做第一个自己

 
 
 

日志

 
 

Windows下安装配置nutch1.2  

2012-04-17 21:22:40|  分类: 搜索引擎 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

准备软件:

jdk1.6.0  

apache-tomcat-7.0.23

nutch-1.2

Cygwin

1:首先安装JAVA  (C:/Program Files/Java/jdk1.6.0_10)  

安装完成后 

设置环境变量  JAVA_HOME = C:/Program Files/Java/dk1.6.0_10

CLASSPATH=.;%JAVA_HOME%\lib;%CATALINA_HOME%\lib;

2:安装Cygwin  (C:/cygwin)

在第一次安装时:需要先从镜像点上下载相关文件
再次运行程序即可安装成功。

解压 tomcat-7.0.23  (C:\apache-tomcat-7.0.23)

4: 解压 nutch-1.2  (C:\apache-nutch-1.2)

设置环境变量 NUTCH_JAVA_HOME=" C:/Program Files/Java/jdk1.6.0_10"

<1> 创建目录 

apache-nutch-1.2/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”这样的内容,这里是抓去过程日志。

此时出现错误:

java.lang.NoClassDefFoundError: org/apache/nutch/crawl/Crawl

Caused by: java.lang.ClassNotFoundException: org.apache.nutch.crawl.Crawl

        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)

        at java.security.AccessController.doPrivileged(Native Method)

        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)

        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

Could not find the main class: org.apache.nutch.crawl.Crawl.  Program will exit.

Exception in thread "main"

这是由于在文件夹C:\apache-nutch-1.2\lib 下少了nutch-1.2.jar 文件

在文件夹C:\apache-nutch-1.2 下有个build.xml ,我们需要使用它来生成nutch-1.2.jar文件,这需要使用ant ,我用的是apache-ant-1.8.3   把它解压后放到目录C:\apache-ant-1.8.3下。

之后配置环境变量

    我的电脑->属性->高级->环境变量。主要设置ANT_HOME ,PATH.

  1) ANT_HOME设置方法:

    ANT_HOME = C:\apache-ant-1.8.3

  2) ANT_HOME设置方法:将%ANT_HOME%\bin;添加到环境变量的path中。
    PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;C:\Program Files\QuickTime\QTSystem\;%JAVA_HOME%\bin;%CATALINA_HOME%\bin;C:\apache-ant-1.8.3\bin;

1. 运行ant,必须先安装并配置好JDK. JAVA_HOME=C:/Program Files/Java/jdk1.6.0_10

Ant 的运行 
安装好Ant并且配置好路径之后,在命令行中切换到构建文件build.xml的目录,输入Ant命令就可以运行Ant.若没有指定任何参数,Ant会在当前目录下查询build.xml文件。如果找到了就用该文件作为构建文件。如果使用了 –find 选项,Ant 就会在上级目录中找构建文件,直至到达文件系统得跟目录。如果构建文件的名字不是build.xml ,则Ant运行的时候就可以使用 –buildfile file,这里file 指定了要使用的构建文件的名称,示例如下: 
Ant如下说明了表示当前目录的构建文件为build.xml 运行 ant 执行默认的目标。 
Ant –buildfile  test.xml使用当前目录下的test.xml 文件运行Ant ,执行默认的目标

执行ant命令之后在目录C:\apache-nutch-1.2下生成了文件nutch-1.2.job,将它放到目录C:\apache-nutch-1.2\lib下即可。此时要注意了: build目录下生成的nutch-1.2.job 文件不能删去。

之后在cygwin下运行命令:sh nutch crawl urls -dir localweb -depth 10 -topN 50 又出现一个问题

 

crawl started in: localweb

rootUrlDir = urls

threads = 10

depth = 3

indexer=lucene

topN = 5

Injector: starting at 2002-01-04 02:07:03

Injector: crawlDb: localweb/crawldb

Injector: urlDir: urls

Injector: Converting injected urls to crawl db entries.

Exception in thread "main" java.io.IOException: Job failed!

        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1252)

        at org.apache.nutch.crawl.Injector.inject(Injector.java:217)

        at org.apache.nutch.crawl.Crawl.main(Crawl.java:124)

解决方法cygwin中输入:export LANG="zh_CN.GBK",而后回车,其实就是设置下linux的环境变量


 

<7>  配置tomcat,

nutch压缩包下找到nutch-1.2.war文件(我没有找到,用nutch-1.1.war文件改名为nutch-1.2.war文件),放到tomcat/webapps目录下, 启动tomcatwebapps/nutch-1.2/WEB-INF/classes/nutch-site.xml文件中的<configuration></configuration>内插入一下内容

<property>

<name>searcher.dir</name>

 <value>C:/apache-nutch-1.2/bin/localweb</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-1.2 即可。

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

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"%>'/>

  评论这张
 
阅读(1244)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017