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指定并发的线程数。
补充: 在这一步有可能抛出参数异常的问题,解决方法修改nutch-default.xml文件http.agent.name的<value>值
4、使用Tomcat进行搜索测试
(1)将tomcatwebapps下的ROOT文件夹名改成ROOT1;
(2)将nutch-0.7.1目录的nutch-0.7.1.war复制到tomcatwebapps下,并将其改名为ROOT;
(3)打开ROOTWEB-INFclasses下的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>”部分,读者应根据自己的设置进行相应修改。
(4)启动Tomcat,打开浏览器在地址栏中输入:http://localhost:8080,如图1所示:
点击查看大图
在文本框中输入要害字,就可以进行搜索了。不过用户在使用时会发现,对于英文单词的搜索一切正常,而当要搜索中文词语时会出现乱码。其实这个问题是Tomcat设置的问题,解决办法是修改tomcatconf下的server.xml文件,将其中的Connector部分改成如下形式即可:
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8" useBodyEncodingForURI="true" />
现在我们可以对中文词汇进行搜索了。如在搜索框中输入“李开复”,点击搜索按钮后,会搜索到笔者之前写的两篇文章《从李开复换门庭开启的缝隙中窥视——试探Google的几招成功“秘诀”》与《从国内首例禽流感假疫苗大案说起——有感于李开复<做最好的自己>中的诚信观》,如图2所示:
点击查看大图
假如点击show all hits按钮,则会列出更多相关的搜索结果了。
5、使用Resin进行搜索测试
由于笔者最近工作中经常使用Resin,因此在Tomcat上测试完毕后也想在Resin上测试一把,未曾想碰到了各种意想不到的情况。下面就将所碰到的问题以及解决方法列出,以供碰到相同问题的读者参考。
(1)将nutch-0.7.1目录的nutch-0.7.1.war复制到resin-3.0.17webapps下;
(2)打开resin-3.0.17conf下的resin.conf文件,把
<!-- configures the default host, matching any host name -->
下面的内容改成:
<host id="" root-Directory=".">
<web-app id="/" document-directory="webapps/nutch-0.7.1"/>
<stderr-log path='logs/stderr.log' rollover-period='1W'/>
<stdout-log path='logs/stdout.log' rollover-period='1W'/>
</host>
(3)打开resin-3.0.17webapps utch-0.7.1WEB-INFclasses下的nutch-site.xml文件,修改成如下形式:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="nutch-conf.xsl"?>
转载:http://school.cnd8.com/java/jiaocheng/14082.htm
分享到:
相关推荐
这个“Nutch使用&Nutch;入门教程”将带你深入理解Nutch的基本概念、工作流程以及如何实际操作它来执行网络爬取任务。 一、Nutch简介 Nutch是一个基于Java的开源搜索引擎,其主要功能包括网页抓取、链接分析、网页...
### Nutch 使用指南 #### 一、概述 Nutch 是一个开源项目,旨在帮助用户构建自己的内部网搜索引擎或面向整个互联网的搜索引擎。本指南将基于 Nutch 的版本 0.7,详细介绍如何设置和配置 Nutch 以进行内部网爬取...
nutch 使用文档 Nutch 是一个开源的网络爬虫工具,使用 Java 语言编写,主要用于爬取和索引互联网上的网页。下面是 Nutch 的使用方法和相关知识点。 Nutch 搭建过程 Nutch 的搭建过程主要包括准备工作、安装 ...
本文档将引导你入门Nutch的基本使用,包括环境配置、部署、爬取网页以及搜索功能的实现。 **环境要求:** 1. **JDK 1.5 或更高版本** - Nutch 需要Java开发环境支持,确保你的系统已经安装了Java,并且版本符合要求...
在实际操作中,开发者可能需要查看Nutch的源代码,特别是`org.apache.nutch.parse`包下的类,如`Parser`、`ParserFactory`等,来了解如何集成自定义的MP3解析功能。 总之,将MP3文件信息解析集成到Nutch中,可以...
《Nutch 入门教程.pdf》这本书籍或文档应该包含了 Nutch 的基础知识、安装配置、使用示例以及常见问题解答等内容。通过阅读此教程,你可以了解如何搭建 Nutch 爬虫环境,编写自定义插件,以及进行定制化抓取和索引。...
- **网页抓取**:Nutch使用爬虫技术,通过种子URL开始,遍历互联网上的链接,逐步抓取网页。 - **HTML解析**:抓取的网页会被解析成HTML文档,提取出有用的信息如标题、正文等。 - **链接分析**:Nutch使用...
Nutch的强大之处在于其插件机制,用户可以根据需求编写自己的插件,如自定义解析器、URL过滤器、索引器等。Nutch的核心组件包括:`fetcher`(负责下载网页)、`parse`(解析HTML)、`index`(创建索引)和`scoring`...
由于Nutch使用了一些外部库,如MP3和RTF格式的解析库,你需要手动将这些库添加到项目的Classpath中。可以通过以下步骤实现: 1. 访问Nutch的源码库,找到相应的库文件: - MP3解析库:`...
**Nutch 使用总结** Nutch 是一个开源的网络爬虫项目,主要用来抓取互联网上的网页并建立索引,为信息检索提供基础。对于初学者来说,它是一个很好的平台,可以深入了解搜索引擎的工作原理并动手实践。 ### 1. ...
4. **Nutch版本**:在例子中使用的是Nutch 0.8版本,但你应该从Apache Nutch的官方网站下载最新的稳定版本,以获取最新的特性和修复。 5. **Tomcat**:Nutch可能需要与Tomcat集成,特别是如果你想使用Nutch的Web...
本文将详细介绍在Windows和Linux环境下如何搭建Nutch 1.7,并探讨如何将其与Solr集成使用。 **Nutch 在 Windows 下的搭建过程** 1. **准备工作** - 检查系统需求:确保你的Windows系统满足运行Java开发环境(JDK...
6. **存储与分布式计算**:Nutch 2.3 建立在 Hadoop 分布式计算框架之上,能够处理大规模数据。HDFS 用于存储网页数据,MapReduce 用于处理抓取和索引任务。 7. **配置与扩展**:Nutch 提供了丰富的配置选项,用户...
2. **分词(Tokenization)**:Nutch使用了Apache Lucene库进行文本分析,包括分词、停用词移除、词干化等预处理步骤,以准备数据供索引使用。 3. **索引(Indexing)**:索引模块将抓取的网页内容转化为可供搜索的...
Nutch是Apache软件基金会的一个...总的来说,这份"nutch开发资料 搜索引擎"包含的资源对于想要深入学习和使用Nutch的人来说非常有价值。通过阅读源码和实践,开发者可以掌握搜索引擎的实现原理,提升自己的技能水平。
6. **Link Analysis**:Nutch使用PageRank算法进行链接分析,计算网页的重要性,提升搜索结果的相关性。 7. **配置文件**:Nutch的配置文件非常重要,它们定义了爬虫的行为、抓取策略、抓取间隔、存储路径等参数。...
本文将详细介绍 Apache Nutch 1.7 在 Windows 和 Linux 下的安装过程,包括安装前的准备工作、安装 Cygwin、安装 Nutch 1.7、测试 Nutch 1.7 以及与 Solr 结合使用等内容。 1. 准备工作 在安装 Apache Nutch 1.7 ...
Apache Nutch 是一个开源的网络爬虫框架,用于抓取互联网上的网页并建立索引,以便进行全文搜索。Nutch 2.2.1 是一个稳定版本,它依赖于其他几个组件来完成其功能,包括 Apache Ant、Apache Tomcat、Java 开发工具包...
Nutch 的强大之处在于其模块化的设计,允许用户根据实际需求定制和扩展。通过熟练掌握 Nutch 的使用,你可以建立自己的搜索引擎,或者进行大规模的数据挖掘任务。同时,Nutch 也是学习网络爬虫原理和技术的好工具。