Nutch使用之锋芒初试

“工欲善其事,必先利其器。”经过前文的“细解”,我们已经完成了Nutch在Windows中的安装。接下来就让我们通过锋芒初试,来亲自体验一下Nutch的强大功能吧!

Nutch的爬虫抓取网页有两种方式,一种方式是Intranet Crawling,针对的是企业内部网或少量网站,使用的是crawl命令;另一种方式是Whole-web crawling,针对的是整个互联网,使用inject、generate、fetch和updatedb等更底层的命令。本文将以使用Nutch为笔者在CSDN处的个人专栏(http://blog.csdn.net/zjzcl)文章内容建立搜索功能为例,来讲述Intranet Crawling的基本使用方法(假设用户电脑系统已安装好JDK、Tomcat和Resin,并做过相应的环境配置)。

1、设置Nutch的环境变量

在Windows系统的环境变量设置中,增加NUTCH_JAVA_HOME变量,并将其值设为JDK的安装目录。比如笔者电脑中JDK安装于D:\j2sdk1.4.2_09,因此将NUTCH_JAVA_HOME的值设为D:\j2sdk1.4.2_09。

2、Nutch抓取网站页面前的准备工作

(1)在Nutch的安装目录中建立一个名为url.txt的文本文件,文件中写入要抓取网站的顶级网址,即要抓取的起始页。笔者在此文件中写入如下内容:

http://blog.csdn.net/zjzcl

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

# accept hosts in MY.DOMAIN.NAME

+^http://blog.csdn.net/zjzcl

3、运行Crawl命令抓取网站内容

双击电脑桌面上的Cygwin图标,在命令行窗口中输入:

cd /cygdrive/i/nutch-0.7.1

不明白此命令含义的读者请参见前《细解》一文,然后再输入:

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

等待大约2分多钟后,程序运行结束。读者会发现在nutch-0.7.1目录下被创建了一个名为crawled的文件夹,同时还生成一个名为crawl.log的日志文件。利用这一日志文件,我们可以分析可能遇到的任何错误。另外,在上述命令的参数中,dir指定抓取内容所存放的目录,depth表示以要抓取网站顶级网址为起点的爬行深度,threads指定并发的线程数。

4、使用Tomcat进行搜索测试

(1)将tomcat\webapps下的ROOT文件夹名改成ROOT1;

(2)将nutch-0.7.1目录的nutch-0.7.1.war复制到tomcat\webapps下,并将其改名为ROOT;

(3)打开ROOT\WEB-INF\classes下的nutch-site.xml文件,修改成如下形式:

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

   <!-- Put site-specific property overrides in this file. -->

   <nutch-conf>
    <property>
     <name>searcher.dir</name>
     <value>I:/nutch-0.7.1/crawled</value>
    </property>
   </nutch-conf>

其中的“<value>I:/nutch-0.7.1/crawled</value>”部分,读者应根据自己的设置进行相应修改。

时间: 2024-08-31 16:14:26

Nutch使用之锋芒初试的相关文章

Nutch 笔记(一):Quick Start

最近用到了nutch,目的是针对指定的一些网站抓取其内容,然后做分析用. nutch 笔记是我使用nutch过程一系列总结,写下自己的学习经过和大家一起分享,也希望能得到大家的指点 好了,废话少说,言归正传,第一篇:Quick Start,我们的目标是快速的能跑起来,能检索出我们想要的结果. 首先要明白nutch是什么? nutch是一个基于lucene的开源搜索引擎,它包括了所有你想要的东西,是一个完整的解决方案 . 一:安装JDK 如果你已经安装了JDK,并且已经设置了JAVA_HOME,那

转 编写一个最简单的Nutch插件

nutch是高度可扩展的,他使用的插件系统是基于Eclipse2.x的插件系统.在这篇文章中我讲解一下如何编写一个nutch插件,以及在这个过程中我遇到的坑. 请先确保你在eclipse中成功运行了nutch,可以参考在eclipse中运行nutch 我们要实现的插件的功能是接管抓取过程,然后无论抓取什么网址,我们都返回hello world,够简单吧... 插件机制 nutch的插件机制大致是这样:nutch本身暴露了几个扩展点,每个扩展点都是一个接口,我们可以通过实现接口来实现这个扩展点,这

转 解析Nutch插件系统

一. 在Nutch的插件体系架构下,有些术语需要解释    1.扩展点(ExtensionPoint )       扩展点是系统中可以被再次扩展的类或者接口,通过扩展点的定义,可以使得系统的执行过程变得可插入,可任意变化.     2.扩展 ( Extension )       扩展式插件内部的一个属性,一个扩展是针对某个扩展点的一个实现,每个扩展都可以有自己的额外属性,用于在同一个扩展点实现之间进行区分.扩展必须在插件内部进行定义.    3.插件 ( Plugin )       插件实

数据-求一份配置完整简单优化过的nutch

问题描述 求一份配置完整简单优化过的nutch 求一份配置完整简单优化过的nutch.自己弄了一个多月了,但是还是爬取不到太多数据, 爬了10多个小时,却只有5万多条数据,所以想找各位大神要一份配置好的可行的nutch(我暂时还没有配hadoop集群,想单机跑), 我试试,看看是不是我配置的问题......实在搞不定了..也使用过自动更改ip的软件来防止ip被封,但是还是没效果........ 解决方案 建议多进程,多台计算机跑,加快速度,也可能和你的单IP有关 解决方案二: 哦...我用软件设

nutch 代理 本地ip与代理ip之间转换

问题描述 nutch 代理 本地ip与代理ip之间转换 我用的是Nutch1.9版本的,在爬去网站过程中好像因为同一ip访问频繁然后ip被封了,正在尝试用代理,但是如果代理ip被封了的话,nutch会使用本机的ip继续进行爬去吗?然后等本机ip被封的时候又转代理ip进行爬去?这样循环转换..... 解决方案 http://fuliang.iteye.com/blog/148999

nutch简介

1.什么是 nutch Nutch 是一个开源的. Java 实现的搜索引擎.它提供了我们运行自己的搜 索引擎所需的全部工具.2.研究 nutch 的原因 (1) 透明度: nutch 是开放源代码的,因此任何人都可以查看他的排序算法是如何工作的.商业的搜索引擎排序算法都是保密的,我们无法知道为 什么搜索出来的排序结果是如何算出来的.更进一步,一些搜索引擎允 许竞价排名,比如百度,这样的索引结果并不是和站点内容相关的.因 此 nutch 对学术搜索和政府类站点的搜索来说,是个好选择,因为一 个公

Nutch介绍及使用

1. Nutch介绍 Nutch是一个开源的网络爬虫项目,更具体些是一个爬虫软件,可以直接用于抓取网页内容. 现在Nutch分为两个版本,1.x和2.x.1.x最新版本为1.7,2.x最新版本为2.2.1.两个版本的主要区别在于底层的存储不同. 1.x版本是基于Hadoop架构的,底层存储使用的是HDFS,而2.x通过使用Apache Gora,使得Nutch可以访问HBase.Accumulo.Cassandra.MySQL.DataFileAvroStore.AvroStore等NoSQL.

Cygwin运行nutch报错:Failed to set permissions of path

错误信息: Exception in thread "main" java.io.IOException:Failed to set permissions of path:\tmp\hadoop-ysc\mapred\staging\ysc-2036315919\.staging to 0700 官方BUG参考: https://issues.apache.org/jira/browse/HADOOP-7682 解决方法: 1.下载并解压http://mirror.bit.edu.c

开发基于Nutch的集群式搜索引擎

本文首先介绍 Nutch 的背景知识,包括 Nutch 架构,爬虫和搜索器.然后以开发一个基于 Nutch 的实际应用为例向读者展示如何使用 Nutch 开发自己的搜索引擎.在该示例中,首先带领读者开发一个作为 Nutch 爬虫抓取的目标网站,目标网站将被部署在域名为 myNutch.com 的服务器上.然后示例说明 Nutch 爬虫如何抓取目标网站内容,产生片断和索引,并将结果存放在集群的2个节点上.最后使用 Nutch 检索器提供的 API 开发应用,为用户提供搜索接口. 简介 Nutch