今天研究了Nutch, 差不多已经好几个小时了, 到现在还没有搞定,也这么晚了, 先记录下来,明天继续吧。
一开始很多时间都浪费在了cygwin的安装上了,bs这个软件的开发者了, 一个不伦不类的软件安装程序,安装的时候还要从网上下载东东。。。。。不过最后终于装成功了, 先下载到本地后,再安装的(建议 下载站点中选 TW的比较块)。
下面是我安装CYGWIN和NUTCH的过程, 都块成功了, 但最后卡在了用户查询界面, 输入东西什么都查不出来,不知怎么回事。
NUTCH的大致原理如下:
安装步骤参考了该文章
一、环境:
1.操作系统:windowsXp,windows2000+
2.javaVM:java1.5.x,设置JAVA_HOME到环境变量
3.cygwin,当然这个不是必需的,只是nutch提供的脚本只能在shell环境下使用,所以使用cygwin来虚拟shell命令。
4.nutch版本:0.8
5.tomcat:5.0
二、cygwin的安装:
cygwin的安装在Nutch在Windows中安装之细解一文中有较为详细的介绍,此处不再介绍安装步骤,只介绍安装后需要如何判断是否能够使用:在cygwin的安装目录下,查找x:\cygwin\cygwin\bin\sh.exe,存在此命令即可使用。
cygwin在删除后会发现无法再次成功安装的问题,可以通过注册表内的查找功能,删除所有包含cygwin内容的键值即可。
三、nutch的安装和配置:
1。从http://lucene.apache.org/nutch/release/下载0.8或更高的版本,解压缩后,放置到cygwin的根目录下,如图:
图中可以看到nutch目录在cygwin的根目录下。
2。在nutch/bin下,建立urls目录,然后建立一个url.txt文件,在url.txt文件内写入一个希望爬行的url,例如:www.sina.com.cn,目录结构如图:
3。打开nutch\conf\crawl-urlfilter.txt文件,把MY.DOMAIN.NAME字符替换为url.txt内的url的域名,其实更简单点,直接删除MY.DOMAIN.NAME这几个字就可以了,也就是说,只保存+^http://([a-z0-9]*\.)*这几个字就可以了,表示所有http的网站都同意爬行。
4 。打开nutch\conf\conf/nutch-site.xml文件,在<configuration></configuration>内插入一下内容:
<property><o:p></o:p>
<name>http.agent.name</name><o:p></o:p>
<value></value><o:p></o:p>
<description>HTTP 'User-Agent' request header. MUST NOT be empty - <o:p></o:p>
please set this to a single word uniquely related to your organization.<o:p></o:p>
<o:p> </o:p>
NOTE: You should also check other related properties:<o:p></o:p>
<o:p> </o:p>
http.robots.agents<o:p></o:p>
http.agent.description<o:p></o:p>
http.agent.url<o:p></o:p>
http.agent.email<o:p></o:p>
http.agent.version<o:p></o:p>
<o:p> </o:p>
and set their values appropriately.<o:p></o:p>
<o:p> </o:p>
</description><o:p></o:p>
</property><o:p></o:p>
<o:p> </o:p>
<property><o:p></o:p>
<name>http.agent.description</name><o:p></o:p>
<value></value><o:p></o:p>
<description>Further description of our bot- this text is used in<o:p></o:p>
the User-Agent header. It appears in parenthesis after the agent name.<o:p></o:p>
</description><o:p></o:p>
</property><o:p></o:p>
<o:p> </o:p>
<property><o:p></o:p>
<name>http.agent.url</name><o:p></o:p>
<value></value><o:p></o:p>
<description>A URL to advertise in the User-Agent header. This will <o:p></o:p>
appear in parenthesis after the agent name. Custom dictates that this<o:p></o:p>
should be a URL of a page explaining the purpose and behavior of this<o:p></o:p>
crawler.<o:p></o:p>
</description><o:p></o:p>
</property><o:p></o:p>
<o:p> </o:p>
<property><o:p></o:p>
<name>http.agent.email</name><o:p></o:p>
<value></value><o:p></o:p>
<description>An email address to advertise in the HTTP 'From' request<o:p></o:p>
header and User-Agent header. A good practice is to mangle this<o:p></o:p>
address (e.g. 'info at example dot com') to avoid spamming.<o:p></o:p>
</description><o:p></o:p>
</property><o:p></o:p>
把<name>XXX</name>之间的内容替换为其他字符,当然就算是不替换也无所谓,这里的设置,是因为nutch遵守了robots协议,在获取response时,把自己的相关信息提交给被爬行的网站,以供识别。
以上配置,是爬取intranet的配置方式。
四、执行nutch
由于配置nutch采用的是单独网站的配置方式,所以执行上我们也采用的是单网查询,全网查询在以后的内容中介绍。
先看一看nutch给出的命令:nutch crawl urls -dir crawl -depth 3 -topN 50
crawl:通知nutch.jar,执行crawl的main方法。
urls:存放需要爬行的url.txt文件的目录,注意,这个名字需要和你的文件夹目录相同,如果你的文件夹为search,那这里也应该改成search。
-dir crawl:爬行后文件保存的位置,可以在nutch/bin目录下找到。
-depth 3:爬行次数,或者成为深度,不过还是觉得次数更贴切,建议测试时改为1。
-topN 50:一个网站保存的最大页面数。
执行命令的步骤:
1。进入cygwin界面。
2。使用cd命令,进入nutch\bin路径下。
3。执行:sh nutch crawl urls -dir crawl -depth 3 -topN 50
具体的爬行日志可以在nutch/logs目录下看到,注意查找“INFO fetcher.Fetcher - fetching http://XXXXXXX”这样的内容,这里是抓去过程日志。
五、查询搜索:(目前我还没有通过此步,输入关键字老是没有结果????)
nutch 提供了类似google、baidu的网页页面,在nutch压缩包下找到nutch-0.8.war文件,放到tomcat/webapps目录下,修改webapps/nutch/WEB-INF/classes/nutch-site.xml文件内容如下:
<property>
<name>searcher.dir</name>
<value>C:\\cygwin\\nutch\\bin\\crawl</value>
</property>
<value/>的内容是刚才爬行后的crawl目录位置,提供给客户端来查询。
配置完成后,启动tomcat,输入http://localhost:8080/nutch,输入关键字,就会看到结果了,下图是我抓去wap网站的测试结果:
六、总结:
ntuch 提供了一个高效、开源、易操作的搜索引擎,内部有许多细微之处都是值得借鉴的,例如采用了hadoop的分布式文件系统,类似eclipse的插件技术, apache的httpclient来访问网站,org.cyberneko.html得HtmlParse来解析页面等等,在以后会逐个介绍。
-----------------------------------------------------------------------------------------------------------------------------------------------明天继续,呵呵
分享到:
相关推荐
配置文件如`conf/nutch-site.xml`定义了各种参数,包括抓取策略、下载设置、解析规则、索引设置等。通过对这些配置文件的调整,可以定制Nutch的行为以适应特定的抓取任务。 总的来说,Nutch爬虫系统通过其复杂的...
《淘特搜索引擎共享版_tot_search_engine》是一款基于JAVA后台开发的毕业设计项目,旨在实现一个高效、实用的网络搜索引擎。这个项目的源代码包含了完整的开发流程和技术实现,对于学习和研究搜索引擎技术,特别是...
基于nutch的新闻分类系统源码+数据集+详细文档(高分毕业设计).zip基于nutch的新闻分类系统源码+数据集+详细文档(高分毕业设计).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,...
【计算机专业毕业设计(论文)题目汇总】 计算机专业毕业设计是学生在学业结束前的重要实践环节,旨在将所学的理论知识与实际问题相结合,提升解决问题的能力。以下是一些计算机科学与技术专业的毕业设计题目,涵盖了...
"apache-nutch-2.4" 文件夹包含了 Nutch v2.4 的所有源代码,包括爬虫、索引、存储和配置等多个模块。开发者可以深入研究代码,理解其工作原理,定制自己的爬虫解决方案。 4. **说明.htm**: 这个文件可能提供了...
《基于Java Nutch的搜索引擎设计与实现》这篇毕业设计论文主要探讨了如何利用Nutch框架构建第四代搜索引擎,深入分析了搜索引擎的关键技术和策略。Nutch是一个开源的Web爬虫项目,它为构建大规模搜索引擎提供了基础...
"nutch-htmlunit-master"是项目源码,包含Nutch和Htmlunit的整合代码,学生可以从中学习如何构建类似的爬虫插件。 总之,这个项目提供了学习和实践网络爬虫技术,尤其是处理动态内容的好机会。通过深入理解和实践,...
9. **毕业设计论文参考**:对于计算机科学的学生来说,Nutch 是一个理想的毕业设计主题,因为它涵盖了网络编程、分布式计算和信息检索等多个领域。 10. **模板建站与系统软件工具**:Nutch 的索引和搜索功能可以...
基于Nutch的搜索引擎设计与实现 本文阐述了基于Nutch的搜索引擎设计与实现,以满足中文信息处理的需求。Nutch是一个开源的搜索引擎框架,提供了完整的搜索引擎解决方案。本文对Nutch的工作机制进行了深入分析,并对...
基于Nutch的新闻主题搜索引擎的设计与实现毕业论文.doc
计算机专业毕业设计(论文)题目汇总表中涵盖了多个与信息技术相关的项目,这些项目旨在让学生将所学知识应用于实际问题的解决,提升他们的软件设计能力和信息系统分析能力。以下是这些项目的详细介绍: 1. 考试报名...
当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。欢迎下载,沟通交流,互相学习,共同进步!
**论文实施计划**\n整个毕业设计分为多个阶段,包括资料收集、需求分析、系统设计与实现、论文撰写及答辩。其中,使用开源的Lucene框架和其子项目Nutch进行全文搜索引擎的开发,这涉及到程序编写、界面设计和测试...
系统的实现使用了 Java 语言和 Apache Nutch 框架,能够高效、安全地抓取、过滤和整理网络上的信息。 知识点四:信息安全浏览 ------------------------ 信息安全浏览是本文研究的核心问题之一。爬虫系统能够自动...
10. 相关技术工具:文档还列出了在设计网络爬虫时可能使用到的工具和框架,例如Nutch、Larbin和Heritrix。这些工具和框架各有特点,能够帮助开发者更高效地实现网络爬虫的功能。 综上所述,网络爬虫的设计与实现是...
从提供的文档内容可以看出,本文是关于网络爬虫设计与实现的毕业设计论文,重点讲述了网络爬虫在主题定向爬取、多线程技术、性能优化以及广度优先搜索技术等关键方面的应用。 首先,文档提到了主题定向爬虫的概念。...
3. 数据处理和分析:主题网络爬虫需要对爬取的信息进行处理和分析,以提取有用的信息,需要设计合适的数据处理和分析算法。 三、主题网络爬虫的实现 在实现主题网络爬虫时,需要选择合适的编程语言和开发工具,以...