zoukankan      html  css  js  c++  java
  • Nutch使用方法简介

    目前Nutch采用Sehll的启动方式,如果您使用的是Windows系统,那么首先需要安装Cygwin。本文就以在Windows中为例,介绍Nutch的安装和使用方法。

    (1)准备需要的软件列表

    (2) 安装软件

       

         1)  Cygwin 打开安装程序Cygwin.exe后,在"Choose Installation Type"页选择 "Install from Internet"(如果你已经把全部安装包下载到本地,就可以选择"Install from local directory"选项)。然后点击"Next".

              然后选择安装目录,其他可保持默认选项,点击"Next".

              选择保存安装包的本地目录,点击"Next".

              选择下载连接的类型,点击Next。

              然后通过服务器先下在需要安装的包列表,默认全部安装,并且选择可以使用的下载镜像地址(速度不一样,如果下载速度太慢可以换别的:) )

              请耐心等待,安装程序会自动下载和安装程序包,并且保存程序包在设定的目录,这样下次安装就不必重新下载了。我安装时大约用了3分钟,下载网速大约80Kbs/s。

              完成安装。

         2) 安装JDK,这个就不用介绍了,注意安装完成后需要在Windows的环境变量中加入JAVA_HOME=你的jdk的安装目录

         3) 安装Tomcat,这个就不用多说了吧。

         4)把Nutch解压到本地目录,例如D:/nutch。这时候启动Cygwin程序,Cygwin程序会启动一个模拟Unix/Linux的终端窗口, 然后使用方式就和Unix的Shell一样了,Cygwin的根目录是/cygdriver,这个目录相当于Windows的“我的电脑”,然后进入 Nutch的目录,例如:cd /cygdriver/d/nutch,然后运行bin/nutch命令,如果出现下面的Usage 信息,这样Nutch就安装完成了,非常简单。

         Usage: nutch COMMAND
         where COMMAND is one of:
             crawl one-step crawler for intranets
             readdb read / dump crawl db
             mergedb merge crawldb-s, with optional filtering
             readlinkdb read / dump link db
             inject inject new urls into the database
             generate generate new segments to fetch
             fetch fetch a segment's pages
             parse parse a segment's pages
             readseg read / dump segment data
             mergesegs merge several segments, with optional filtering and slicing
             updatedb update crawl db from segments after fetching
             invertlinks create a linkdb from parsed segments
             mergelinkdb merge linkdb-s, with optional filtering
             index run the indexer on parsed segments and linkdb
             merge merge several segment indexes
             dedup remove duplicates from a set of segment indexes
             plugin load a plugin and run one of its classes main()
             server run a search server
         or
             CLASSNAME run the class named CLASSNAME
         Most commands print help when invoked w/o parameters.

           

     (3)开始使用Nutch

            下面用一个简单的例子说明Nutch的使用方法

            1) 添加需要爬行的内部网地址信息。

             新建一个目录,写入一些网址信息,例如我们需要爬行csdn的内部网。

                 mkdir urls

                 echo http://www.csdn.com/ >urls/csdn

            2) 然后修改 conf目录下的crawl-urlfilter.txt文件,这个文件中的正则表达式定义了那些文件可以被Nutch爬行,那些不可以被爬 行。其中以“+”号开头的表示属于Nuch合法的Url连接,“-”号开头相反。我们需要修改文件中的

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

             为

            # accept hosts in MY.DOMAIN.NAME
            +^http://([a-z0-9]*/.)*csdn.com/

             3)接下来我们需要配置conf/nutch-site.xml,这个需要填写相关的代理属性,应为Nutch也许要准受Robot协议,在爬行人家网站的时候,把相关的信息提交给被爬行的网站。

             我们在这个文件中,需要在<configuration>和</configuration>之间,加入是个代理属性,例如http.agent.name属性       

             <property>

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

             <value>csdn.com</value>

             <description>csdn.com</description>

             </property>

            其中除了name字段需要准确添写外,其他value和descrption字段可或添写。

           同样,还需要加入http.agent.description,http.agent.url和http.agent.email这三个属性。

           4)这样就完成了全部爬行所需要的配置,下面就可以用nutch的crawl命令来派性企业内部网了

            再nutch目录中输入:

            bin/nutch crawl urls -dir csdn -threads 4 -depth 2 -topN 30

            这样nutch就启动并且开始爬行任务了,由于是简单示例,所以以上这个命令很快就结束了,因为爬行的广度和深度都非常小,也就是说,示例只爬行了csdn网站的很小一部分网页。

            下面就上面命令的参数进行说明:

            Crawl命令的使用说明为: crawl <url dir> [-dir index] [-threads num] [-depth num] [-topN num]

            其中:

               urls是存放需要爬行网址的文件夹目录。

               -dir选项是抓取的页面的存放目录。

               -threads选项是启动的最大线程数。

               -depth选项是能爬行的最大深度,也就是最多爬行到第几级的页面,也叫爬行深度。

               -topN选项是在每层深度上,所能爬行的最多页面数,也称爬行广度。      

            完成爬行后,会在-dir选项所指定的目录中保存网页信息和搜索需要的索引。

  • 相关阅读:
    hdu2818 Building Block
    struct2面试准备
    Spring mvc 面试
    Spring 面试详解
    Java面试必备Springioc上
    redis高级命令4 持久化机制 、事务
    redis高级命令3哨兵模式
    redis高级命令2
    redis高级命令1
    redis基础二----操作set数据类型
  • 原文地址:https://www.cnblogs.com/cy163/p/2912629.html
Copyright © 2011-2022 走看看