Nutch 教程
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
英文原文:NutchTutorial
来源地址:http://www.oschina.net/translate/nutch-tutorial
介绍Apache Nutch是一个用Java编写的开源网络爬虫。通过它,我们就能够自动地找到网页中的超链接,从而极大地减轻了维护工作的负担,例如检查那些已经断开了的链接,或是对所有已经访问过的网页创建一个副本以便用于搜索。接下来就是Apache Solr所要做的。Solr是一个开源的全文搜索框架,通过Solr我们能够搜索Nutch已经访问过的网页。幸运的是,关于Nutch和Solr之间的整合在下方已经解释得相当清楚了。 Apache Nutch对于Solr已经支持得很好,这大大简化了Nutch与Solr的整合。这也消除了过去依赖于Apache Tomcat来运行老的Nutch网络应用以及依赖于Apache Lucene来进行索引的麻烦。只需要从这里下载一个二进制的发行版即可。 |
kzjnet
|
步骤
1.从二进制发行包安装Nutch
从现在开始,我们将会使用${NUTCH_RUNTIME_HOME}来代替当前目录(apache-nutch-1.X/)。 从源代码安装Nutch高级用户也可能会使用源代码发行包:
当使用源代码包时,我们会用${NUTCH_RUNTIME_HOME}代替目录apache-nutch-1.X/runtime/local/。记住这些:
|
kzjnet
|
2.检验您的Nutch安装
Usage: nutch [-core] COMMAND 一些解决问题的提示:
chmod +x bin/nutch
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home |
kzjnet
|
3.抓取您的第一个网站
<property>
这样子就在urls/目录下创建了一个文本文档seed.txt。它需要包含像下面这样的内容(每行一个网站URL来告诉Nutch您想要抓取的网站): http://nutch.apache.org/ 编辑文件conf/regex-urlfilter.txt并且替换 # accept anything else 为一条与您要抓取的域名相对应的正则表达式。例如,如果您想要限制为抓取nutch.apache.org这一域名,这一行读起来应该像是这样子的: +^http://([a-z0-9]*\.)*nutch.apache.org/ 这会包括在nutch.apache.org下的任何URL。 3.1使用抓取命令现在我们已经准备好开始一次抓取,可以使用以下的参数:
bin/nutch crawl urls -dir crawl -depth 3 -topN 5
crawl/crawldb
bin/nutch crawl urls -solr http://localhost:8983/solr/ -depth 3 -topN 5
通常一开始测试一个配置都是通过抓取在较浅深度来进行,大大地限制了每一级所获取的网页数(-topN),并且观察输出来检查所需要的页面是否已经得到以及不需要的页面是否被阻挡。要想查看某一配置是否正确,对于全文搜索来说较为适当的深度设置大约是10左右。每一级所获取的网页数 ( -topN)可以从几万上到几百万,这取决于您的资源。 |
kzjnet
|
3.2使用特别的命令对整个网络进行抓取
整个网络的抓取被设计成用来处理那些可能需要耗费几个星期来完成,在许多台机器上运行的非常大的抓取。这也允许在抓取的过程中进行更多的控制,还有增量抓取。最重要的是要记住整个网络的抓取并不一定意味着要抓取整个万维网。我们可以限制整个网络的抓取只是抓取我们列出的想要抓取的URL。这是通过使用一个就像我们用 crawl命令时一样的过滤器来完成的。 |
kzjnet
|
循序渐进之–概念Nutch数据是由这些组成的:
|
kzjnet
|
循序渐进之–用一组URL列表确定crawldb选择1:从DMOZ数据库自举。 由injector添加URL到crawldb里。让我们从DMOZ开放式分类目录添加URL吧。首先我们必须下载并且解压缩这个DMOZ所有网页的列表(这是一个200多MB的文件,所以这会消耗几分钟)。 wget http://rdf.dmoz.org/rdf/content.rdf.u8.gz 接下来我们选择这些网页当中随机的一些子集(我们使用随机的子集所以所有在跟着这一个教程做的人就不会伤害到同样的网站)。DMOZ包含了大约三百万个URL。我们从每5000个URL中选择出一个,因此我们就有大约1000个URL: mkdir dmoz 这一分析器也需要几分钟来完成,因为它必须要分析整个文件。最后,我们用这些选出的URL来初始化crawldb。 bin/nutch inject crawl/crawldb dmoz 现在我们有了一个大约有1000个未被获取的URL的网络数据库。 选择2:从初始列表里自举。 这一选项不为人们所了解的地方在于创建初始列表并覆盖在urls/目录里。 bin/nutch inject crawl/crawldb urls |
kzjnet
|
循序渐进之–获取要获取,我们首先要从数据库里产生一个获取的列表。 bin/nutch generate crawl/crawldb crawl/segments 这会为所有预定要被获取的网页产生一个获取列表。获取列表放在一个新创建的分段目录里。分段目录的名称取决于它被创建时的时间。 我们将这个分段的名字放在shell的变量s1里面: s1=`ls -d crawl/segments/2* | tail -1` 现在我们能以下面的命令在这个分段里进行获取: bin/nutch fetch $s1 然后我们就能解析条目: bin/nutch parse $s1 当这一切完成以后,我们就以获取回来的结果更新数据库: bin/nutch updatedb crawl/crawldb $s1 现在,数据库包含了刚刚更新的条目的所有初始页,除此之外,新的网页条目对于链接到初始的集合来进行新条目的发现是相符合的。 bin/nutch generate crawl/crawldb crawl/segments -topN 1000 让我们再来获取一次吧: bin/nutch generate crawl/crawldb crawl/segments -topN 1000 通过这一点我们已经获取了几千页的网页。让我们索引它们吧! |
kzjnet
|
循序渐进之–反向链接在我们进行索引之前,我们首先要反转所有的链接,以便我们能够以这些网页来索引进入的锚文本。 bin/nutch invertlinks crawl/linkdb -dir crawl/segments 我们现在准备好要用Apache Solr进行搜索了。 4.为搜索设置Solr
5.检验Solr的安装在您启动Solr管理员控制台以后,您应该能够访问下列这些链接: http://localhost:8983/solr/admin/ |
kzjnet
|
6.将Solr与Nutch进行整合我们已经将Nutch和Solr正确地安装设置好了。并且Nutch已经从URL列表里创建并抓取了数据。以下步骤是一个以Solr来搜索要搜索的链接的代表:
bin/nutch solrindex http://127.0.0.1:8983/solr/ crawl/crawldb -linkdb crawl/linkdb crawl/segments/* 运行solrindex的一些细节已经被改变了。linkdb现在是可选的,所以您需要在命令行中用一个”-linkdb”明确地表示它。 <field name="content" type="text" stored="true" indexed="true"/> |
Nutch 教程的更多相关文章
- Java分布式爬虫Nutch教程——导入Nutch工程,执行完整爬取
Java分布式爬虫Nutch教程--导入Nutch工程,执行完整爬取 by briefcopy · Published 2016年4月25日 · Updated 2016年12月11日 在使用本教程之 ...
- Nutch学习笔记二——抓取过程简析
在上篇学习笔记中http://www.cnblogs.com/huligong1234/p/3464371.html 主要记录Nutch安装及简单运行的过程. 笔记中 通过配置抓取地址http://b ...
- Nutch学习笔记一 ---环境搭建
学习环境: ubuntu 概要: Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. 通过nutch,诞生了hadoop.tika ...
- apache-hadoop-1.2.1、hbase、hive、mahout、nutch、solr安装教程
1 软件环境: VMware8.0 Ubuntu-12.10-desktop-i386 jdk-7u40-linux-i586.tar.gz hadoop-1.2.1.tar.gz eclipse-d ...
- 【Nutch2.3基础教程】集成Nutch/Hadoop/Hbase/Solr构建搜索引擎:安装及运行【集群环境】
1.下载相关软件,并解压 版本号如下: (1)apache-nutch-2.3 (2) hadoop-1.2.1 (3)hbase-0.92.1 (4)solr-4.9.0 并解压至/opt/jedi ...
- 【Nutch基础教程之七】Nutch的2种运行模式:local及deploy
在对nutch源代码运行ant runtime后,会创建一个runtime的目录,在runtime目录下有deploy和local 2个目录. [jediael@jediael runtime]$ l ...
- 【Nutch基础教程之七】Nutch的2种执行模式:local及deploy
在对nutch源码执行ant runtime后,会创建一个runtime的文件夹.在runtime文件夹下有deploy和local 2个文件夹. [jediael@jediael runtime]$ ...
- [转]《Hadoop基础教程》之初识Hadoop
原文地址:http://blessht.iteye.com/blog/2095675 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不 ...
- 《Hadoop基础教程》之初识Hadoop
Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. <Hadoop基础教程> ...
随机推荐
- MongoDB之一介绍(MongoDB与MySQL的区别、BSON与JSON的区别)
MySQL与MongoDB的操作对比,以及区别 MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL ...
- 企业网站DDOS防护解决方案
随着网络的普及,越来越多的企业开始了上网之路,由于网络安全知识的欠缺,很多企业以为做一个网站就 等于 网络化了,于是狠花血本请专业网络公司制作出各种漂亮的网页.但做完才发现,网络上的各种漏洞的DDOS ...
- python27+django1.9创建app的视图及实现动态页面
一.简易静态视图 views文件里写: from django.http import HttpResponse def hello(request): return HttpResponse(&qu ...
- 阿里巴巴2013年实习生笔试题B
阿里巴巴集团2013实习生招聘技术类笔试题(B) 一.单向选择题 1.在常用的网络协议中,___B__是面向连接的.有重传功能的协议. A. IP B. TCP C. UDP D. DXP 2.500 ...
- 使用U盘安装win7系统,遇到“无法定位现有系统分区”问题
朋友的本子貌似因为安装360wifi而导致一进入系统就蓝屏重启,虽然之后就卸载了360wifi,但是问题依旧,上网Google了一下,发觉网上不少网友诉苦,也有人分析原因,说是因为360wifi导致了 ...
- MVC&&MVP
Classic MVC Classic MVC 大概上世纪七十年代,Xerox PARC的Trygve提出了MVC的概念. 并应用在Smalltalk系统中,为了和其它类型的MVC加以区分,历史上习惯 ...
- Scrum流程
敏捷Scrum流程图: Sprint Planing Meeting: 1.Next Spring Goal; 2.Sprint Backlog; 3.Updated Product Backlog; ...
- JAVA分析html算法(JAVA网页蜘蛛算法)
近来有些朋友在做蜘蛛算法,或者在网页上面做深度的数据挖掘.但是遇到复杂而繁琐的html页面大家都望而却步.因为很难获取到相应的数据. 最古老的办法的是尝试用正则表达式,估计那么繁琐的东西得不偿失,浪费 ...
- Android Capture Android System Audio
项目需要获取播放视频的实时音量值,最简捷的方法是监听音频输出端,取得音频输出流,再进行转换. 调查时,首先找到这篇博客: http://blog.csdn.net/jinzhuojun/article ...
- ZOJ-3201 Tree of Tree 树形DP
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3201 题意:给一颗树,每个节点有一个权值,求节点数为n的最大权子 ...