`

nutch安装,使用,二次开发入门

阅读更多
1.1 Nutch安装
    参考资料:http://www.blogjava.net/dev2dev/archive/2006/02/01/29415.aspx Nutch在Windows中安装之细解

由于运行Nutch自带的脚本命令需要Linux的环境,所以必须首先安装Cygwin来模拟这种环境。

1)安装cygwin

2) 下载nutch-0.9.tar.gz, 用winrar解压后,例如放在g:/nutch-0.9

3) 安装nutch,打开cgwin,运行命令:

   cd /cygdrive/g/nutch-0.9  (也就是进入nutch解压的目录)

   bin/nutch                  (执行nutch脚本安装)

4) OK !

1.2 Nutch使用入门
资料:http://blog.csdn.net/zjzcl/archive/2006/02/06/593138.aspx

Nutch 使用之锋芒初试  (包括下载及检索两部分)

注意:请使用JDK1.5,用JDK1。4会报错误:unsupported major.minor version 49.0 n

设置环境变量:NUTCH_JAVA_HOME = c:/jdk1.5

1.2.1 抓取少量网站
1) 在nutch的安装目录新建一个文件url.txt,指明要抓取网站的顶级网址,写入:

   http://www.aerostrong.com.cn

2) 编辑conf/crawl-urlfilter.txt,修改MY.DOMAIN.NAME部分

   # accept hosts in MY.DOMAIN.NAME

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

+^http://www.aerostrong.com.cn

    3) 运行脚本命令抓取,脚本命令全是linux下的shell命令,在window下运行它需要cgwin,打开cgwin,运行命令:

   cd /cygdrive/g/nutch-0.9  (也就是进入nutch解压的目录)

   bin/nutch crawl url.txt -dir crawled -depth 3 -threads 4 >& crawl.log

   参数解释:

      -dir dir names the directory to put the crawl in.

-depth depth indicates the link depth from the root page that should be crawled.

-delay delay determines the number of seconds between accesses to each host.

-threads threads determines the number of threads that will fetch in parallel.

1.2.2 抓取整个因特网
http://hedong.3322.org/archives/000247.html 试用nutch

1、概念解释:

   1) web database: nutch所知道的page,以及在这些page里头的links (由injector通过DMOZ往里添加page,Dmoz(The Open Directory Project/ODP)是一个人工编辑管理的目录集合,为 搜索引擎提供结果或数据。)

   2)  segments.:是指page的一个集合,对它进行抓取与索引都作为同一个单元对待。它包含以下类型:

       Fetchlist 这些page的名称的集合

       Fetcher output: 这些page文件的集合

       Index:  lucene格式的索引输出

2、 建立web database与segments

  

初始准备
 
 


mkdir db
建立目录存放web database


mkdir segments
 


bin/nutch admin db -create
建一个新的空的数据库(这步出错了)

第一轮抓取
 
 


bin/nutch inject db -dmozfile content.rdf.u8 -subset 3000
从DMOZ列表中取得URL并加入数据库


bin/nutch generate db segments
根据数据库内容,生成一个抓取列表(fetchlist)


s1=`ls -d segments/2* | tail -1`
刚才生成的抓取列表放在最后一个目录中,取其名


bin/nutch fetch $s1
利用机器人抓页面


bin/nutch updatedb db $s1
利用抓取结果更新数据库

第二轮抓取
 
 


bin/nutch analyze db 5
迭代5次分析页面的链接


bin/nutch generate db segments -topN 1000
将排行前1000个URL生成新的抓取列表


s2=`ls -d segments/2* | tail -1`
执行抓取、更新、并迭代2次分析链接


bin/nutch fetch $s2
 


bin/nutch updatedb db $s2
 

第三轮抓取
 
 


bin/nutch analyze db 2
 


bin/nutch generate db segments -topN 1000
 


s3=`ls -d segments/2* | tail -1`
 


bin/nutch fetch $s3
 


bin/nutch updatedb db $s3
 


bin/nutch analyze db 2
(为下一次做准备?)

索引并去重
 
 


bin/nutch index $s1
 


bin/nutch index $s2
 


bin/nutch index $s3
 


bin/nutch dedup segments dedup.tmp
 


1.2.3 检索
   1) 将nutch-0.9.war包丢到tomcat发布目录

   2) 修改配置文件指定索引库.( WEB-INFclasses下的nutch-site.xml):

     <?xml version="1.0"?>
  <?xml-stylesheet type="text/xsl" href="nutch-conf.xsl"?>

   <nutch-conf>
   <property>
    <name>searcher.dir</name>
    <value>G:/nutch-0.9/crawled</value>
   </property>
   </nutch-conf>

注意,当复制上述配置文件时,如果出现下列错误,是因为复制文件时带有空格或编码格式,重敲一遍即可: java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence

3) 测试http://172.17.1.122:8081

  注意,若查询字符串输出中文时出现编码问题,这个问题和nutch关系不大,主要是tomcat有关系,修改tomcat的server.xml,在Connector元素中增加属性:

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

1.3 nutch的二次开发
  参考:

http://www.mysoo.com.cn/news/2007/200721679.shtml Google式的搜索引擎实现

http://today.java.net/pub/a/today/2006/01/10/introduction-to-nutch-1.html Introduction to Nutch, Part 1: Crawling

http://today.java.net/pub/a/today/2006/02/16/introduction-to-nutch-2.html Introduction to Nutch, Part 2: Searching



资料
Nutch相关资料收集整理 http://www.gispark.com/html/spatial/2006/1008/294.html 

分享到:
评论

相关推荐

    Nutch1.7二次开发培训讲义

    - **操作系统:** 二次开发Nutch 1.7时,开发阶段的操作系统选择相对灵活,只要确保安装了JDK和Eclipse即可。 - **JDK:** 需要安装Java Development Kit,这是进行Java开发的基础环境。 - **Eclipse:** 作为主要的...

    nutch二次开发学习笔记

    我们需要去抓取网页数据的时候我们就用nutch来爬取,我们对它进行二次开发使其更加符合我们的需求

    nutch使用&Nutch;入门教程

    在使用Nutch之前,你需要配置Nutch的运行环境,包括安装Java、设置Hadoop(如果需要分布式爬取)、下载和编译Nutch源代码。还需要配置Nutch的`conf/nutch-site.xml`文件,指定抓取策略、存储路径、爬虫范围等参数。 ...

    nutch帮助文档;nutch学习 入门

    Nutch是Apache软件基金会开发的一款开源搜索引擎项目,主要用于抓取、索引和搜索Web内容。作为初学者,了解和掌握Nutch的相关知识是探索搜索引擎技术的第一步。本篇将深入探讨Nutch的基本概念、功能、架构以及如何...

    Nutch1.7二次开发培训讲义 之 腾讯微博抓取分析

    ### Nutch 1.7 二次开发培训讲义之腾讯微博抓取分析 #### 一、概述 Nutch 是一个开源的网络爬虫项目,它提供了灵活的数据抓取能力,并支持二次开发定制功能。本篇培训讲义主要针对的是如何使用 Nutch 1.7 版本对...

    nutch2.2.1安装步骤.docx

    Nutch 2.2.1 是一个稳定版本,它依赖于其他几个组件来完成其功能,包括 Apache Ant、Apache Tomcat、Java 开发工具包(JDK)以及 Apache Solr。下面我们将详细探讨如何在 Linux 系统上安装这些组件以及配置 Nutch。 ...

    nutch安装开发环境的配置

    在安装和配置 Nutch 开发环境时,可能会遇到各种问题,以下是对这些问题的详细解答。 首先,确保你已经下载了 Nutch 的正确版本。Nutch 的官方网站可能只提供最新的稳定版本,如 1.6 或 2.1。如果需要其他版本,...

    Nutch使用入门

    1. **JDK 1.5 或更高版本** - Nutch 需要Java开发环境支持,确保你的系统已经安装了Java,并且版本符合要求。 2. **Tomcat 5.x 或更高版本** - 为了运行Nutch的搜索界面,需要部署到一个Web服务器,Tomcat是一个常见...

    Nutch插件开发文档

    #### 二、Nutch插件开发基础 为了更好地理解Nutch插件的开发过程,我们需要先了解几个关键的概念: 1. **Pluggable接口**:这是所有扩展点必须实现的一个通用接口,用于确定一个类是否能够作为插件集成到Nutch框架...

    nutch的安装方法,好用

    ### Nutch 的安装方法详解 #### 一、前言 Nutch是一款开源的网络爬虫项目,基于Hadoop实现,可以抓取整个互联网,并且能够根据网页内容进行索引和检索。本文将详细介绍如何在Windows环境下安装配置Nutch,使初学者...

    nutch初体验

    1. **《nutch入门.pdf》**:这本书可能涵盖了Nutch的基本概念、配置、部署和自定义开发,适合初学者了解Nutch的基础知识。 2. **《nutch入门学习.pdf》**:这可能是更深入的学习资料,可能包含实战案例和高级特性的...

    nutch开发资料 搜索引擎

    开发者可以通过阅读源码理解其内部机制,并进行二次开发。 6. **Hadoop集成**:Nutch充分利用了Hadoop的分布式计算能力,将大型数据集的处理分布到多台机器上。Hadoop MapReduce框架用于处理大规模数据的索引和搜索...

    关于Nutch的安装

    总之,Nutch的安装和使用涉及多个步骤,包括环境配置、源代码获取、配置参数、执行爬行任务等。理解并熟练掌握这些步骤,将有助于构建自己的搜索引擎系统。在实际操作过程中,可能会遇到各种问题,需要根据错误提示...

Global site tag (gtag.js) - Google Analytics