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;入门教程 pdf
Nutch 是开源的,可以建立自己内部网的搜索引擎,也可以针对整个网络建立搜索引擎
Nutch入门使用文档,教大家如何部署Nutch爬虫
nutch的使用方法,里面有具体的nutch代码函数,命令,对于基本的网页爬取是够了
mp3文件信息解析。支持ID3标准的V1和V2.3.可以再nutch中使用。宁外附上nutch的parse-html的一些定制。(图片,关键字匹配)
nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据
Linux下Nutch分布式配置 使用:分布式爬虫、索引、Nutch搜索本地数据、Nutch搜索HDFS数据。
资源名称:Nutch相关框架视频教程资源目录:【】Nutch相关框架视频教程1_杨尚川【】Nutch相关框架视频教程2_杨尚川【】Nutch相关框架视频教程3_杨尚川【】Nutch相关框架视频教程4_杨尚川【】Nutch相关框架视频教程5_...
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎...8.3.1使用Nutch API....53 8.3.2使用OpenSearch API...55 8.4 nutch的应用前景.57 附录一: nutch的相关网站......58 附录二: 参考文献..58
Nutch使用总结 信息检索 建立索引 一个让入学者自己搭建搜索引擎的东西
Hadoop是大数据的核心技术之一,而Nutch集Hadoop之大成,是Hadoop的源头。学习Hadoop,没有数据怎么办?用Nutch抓!学了Hadoop的Map Reduce以及HDFS,没有实用案例怎么办?学习Nutch!Nutch的很多代码是用Map Reduce...
学习nutch 源码解读 轻松入门 搭建自己的nutch搜索引擎
eclipse配置nutch,eclipse配置nutch
Nutch开发入门 Nutch安装和使用 Nutch二次开发 很不错
然后以开发一个基于 Nutch 的实际应用为例向读者展示如何使用 Nutch 开发自己的搜索引擎。在该示例中,首先带领读者开发一个作为 Nutch 爬虫抓取的目标网站,目标网站将被部署在域名为 myNutch.com 的服务器上。然后...
nutch 初学者使用,讲解了nutch使用的方法,功能,简单的例子实现
1.1 Nutch 基本原理 1.1.1 Nutch 基本组成 1.1.2 Nutch 工作流程 1.2 Nutch 流程详解 1.2.1 Nutch 数据流程 1.2.2 Nutch 流程分析
Nutch搜索引擎·Nutch简单应用(第3期) 1.1 Nutch 命令详解 1.2 Nutch 简单应用
3、 nutch是使用svn进行源代码管理的。 4、 lucene、nutch、hadoop,在搜索界相当有名。 5、 ant构建之后,生成runtime文件夹,该文件夹下面有deploy和local文件夹,分别代表了nutch的两种运行方式。 6、 nutch和...
Windows下使用Eclipse配置Nutch2图文详解