zoukankan      html  css  js  c++  java
  • Windows下Nutch的配置

    Nutch是一个开源的、Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。

     

    Nutch可以分为2个部分:

    • 抓取部分crawler

                    抓取程序抓取页面并把抓取回来的数据做成反向索引

    • 搜索部分searcher。

                    搜索程序则对反向索引搜索回答用户的请求。

    Nutch的爬虫有两种方式

    • 爬行企业内部网(Intranet crawling)。针对少数网站进行,用crawl命令。
    • 爬行整个互联网。使用低层的inject,generate,fetch和updatedb命令,具有更强的可控制性。

    昨晚折腾了一晚上终于是大功告成了!

      这里要说的是基于Intranet(企业内部网)的环境配置

      软件:

            JDK

            Cygwin

            Tomcat

            apache-nutch-1.2-bin.zip(http://apache.etoak.com//nutch/apache-nutch-1.2-bin.zip)

     因为nutch脚本是基于Linux内核的所以在Windows下运行,就需要Cygwin这样一个内核模拟器

     1。安装Cygwin(网上资料很多了,建议下载完全的安装版,然后选择从本地安装)

          我们的Cygwin安装在C:/cygwin中

     2。我们把nutch包解压把文件复制到C:/cygwin下,解压后的文件为nutch-1.2

     3。打开安装cygwin安装时生成的快捷方式,这样就能打开cygwin的命令行,里面能执行的当然都是Linux的命令

      cd进入nutch-1.2/bin下面

      输入./nutch 出来nutch命令的一些选项提示 说明已成功一半

     4。接下来是修改nutch-1.2/conf/nutch-site.xml

         修改后如下:

       <configuration>

       <property>

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

         <value>foxman</value>

         <description></description>

       </property>

       <property>

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

         <value></value>

         <description></description>

       </property>

       <property>

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

         <value></value>

         <description></description>

       </property>

       <property>

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

         <value></value>

         <description></description>

       </property>

    </configuration>

    注:http.agent.name段下的foxman值一定要给出(当然值是随意的)
    有兴趣的可以查看nutch-1.2/conf/nutch-default.xml这个文件,里面也有http.agent.name段,默认值为空,所以才要我们强制指明。
    5。修改nutch-1.2/conf/crawl-urlfilter.txt
    倒数四行的代码修改成如下(只是修改了+^http://([a-z0-9]*/.)*163.com/)指明我们抓取的网站是http://www.163.com/下的网站。
    # accept hosts in MY.DOMAIN.NAME
    +^http://([a-z0-9]*/.)*163.com/
    # skip everything else
    -.

    6。在nutch-1.2/bin/下建立文件夹urls,然后在urls下面建立文件url.txt

    里面内容是

    http://www.163.com/

    注:你要抓取的网站。

    7。在cygwin中进入nutch-1.2/bin目录

    执行

    export JAVA_HOME=你JDK的安装路径,不用到JDK的bin文件那一层

    配置好JAVA_HOME

    接着执行

    ./nutch crawl urls -dir crawl -depth 5 -threads 4 -topN 50

    注:urls就是你之前建立的文件夹

          -dir crawl就是创建crawl文件夹来存储抓取的数据

          -depth 5 就是抓取的深度

          -threads 4 就是执行的线程数

          -topN 50 就是每层抓取数目

    这样你的抓取数据都在crawl中了

    可以执行

     ./nutch readdb sina/crawldb/ -stats

    注:查看抓取信息。

    8。把nutch-1.2文件夹下的nutch-1.2.war拷到tomcat的webapps文件下

    打开tomcat,nutch-1.2.war会自动被解压成同名的nutch-1.2文件夹。

    9。配置nutch-1.2/WEB-INF/classes/nutch-site.xml

       修改后如下

      <configuration>

     <property>

         <name>searcher.dir</name>

         <value>C:/cygwin/nutch-1.2/bin/crawl</value>

     </property>

    </configuration>

    注:C:/cygwin/nutch-1.2/bin/crawl这个路径就是你之前抓取数据的存放路径。

    10。中文乱码问题

    配置tomcat的conf文件夹下的server.xml

    修改如下

        <Connector port="8080" protocol="HTTP/1.1" 

                   connectionTimeout="20000" 

                   redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>

    注:找到这一段,关键是添加URIEncoding="UTF-8" useBodyEncodingForURI="true"。

    最好重启一下Tomcat

    浏览器中输入http://localhost:8080/nutch-1.2/就可以大功告成了

    常见问题:

      如何解决Generator: 0 records selected for fetching, exiting ...

    Stopping at depth=0 - no more URLs to fetch.

    一般都会是nutch/conf/crawl-urlfilter.txt中的配置出现的不可预见的错误

    好好在配一下,参照步骤5。

    注意+^http://([a-z0-9]*/.)*163.com/前不要加#那就代表注释了。

    我配了好久一路下来都很顺,也是卡在这个问题上半天

       我当时就是这个配置错了,最好配的跟我一样斜杆什么的也不要落下了!

    OK,祝好远……

    原文地址:http://blog.csdn.net/foxman209/article/details/6066846

  • 相关阅读:
    获取控件的xy坐标
    你不知道的JavaScript--Item4 基本类型和基本包装类型(引用类型)
    你不知道的JavaScript--Item3 隐式强制转换
    ajax技术基础详解
    git回退到某个历史版本
    jQuery中 $.ajax()方法详解
    Eclipse Java注释模板设置详解
    MySQL中group_concat函数深入理解
    javascript知识详解之8张思维导图
    javascript 事件编程之事件(流,处理,对象,类型)
  • 原文地址:https://www.cnblogs.com/lixiuran/p/3328341.html
Copyright © 2011-2022 走看看