Nutch 快速入门(Nutch 1.7)

Nutch搜索引擎入门与实战教程 本文还有配套的精品资源,点击获取 简介:Nutch是一个基于Apache Hadoop构建的开源搜索引擎项目,用于网络爬虫和网页抓取,在大数据信息检索与分析中占据重要地位。本资料详细介绍了Nutch的基础知识、工作流程、配置使用方法,并通过实践流程展示了如何从配置、生成种子、网页抓取到数据存储与搜索的全过程。同时,本资料也提供了与其他大数据工具如Apache Solr和HB... 阅读详情
转载地址:http://www.yanjiuyanjiu.com/blog/20140121/
1 下载已编译好的二进制包,解压
$ wget http://psg.mtu.edu/pub/apache/nutch/1.7/apache-nutch-1.7-bin.tar.gz
$ tar zxf apache-nutch-1.7-bin.tar.gz

2 验证一下

$ cd apache-nutch-1.7
$ bin/nutch

如果出现”Permission denied”请运行下面的命令:

$ chmod +x bin/nutch

如果有Warning说 JAVA_HOME没有设置,请设置一下JAVA_HOME.

3 添加种子URL

mkdir ~/urls
vim ~/urls/seed.txt
http://movie.douban.com/subject/5323968/

4 设置URL过滤规则

如果只想抓取某种类型的URL,可以在 conf/regex-urlfilter.txt设置正则表达式,于是,只有匹配这些正则表达式的URL才会被抓取。

例如,我只想抓取豆瓣电影的数据,可以这样设置:

#注释掉这一行
# skip URLs containing certain characters as probable queries, etc.
#-[?*!@=]
# accept anything else
#注释掉这行
#+.
+^http:\/\/movie\.douban\.com\/subject\/[0-9]+\/(\?.+)?$

5 设置agent名字

conf/nutch-site.xml:

<property>
  <name>http.agent.name</name>
  <value>My Nutch Spider</value>
</property>

这一步是从这本书上看到的,Web Crawling and Data Mining with Apache Nutch,第14页。

6 安装Solr

由于建索引的时候需要使用Solr,因此我们需要安装并启动一个Solr服务器。

参考Nutch Tutorial 第4、5、6步,以及Solr Tutorial。

6.1 下载,解压

wget http://mirrors.cnnic.cn/apache/lucene/solr/4.6.1/solr-4.6.1.tgztar -zxf solr-4.6.1.tgz

6.2 运行Solr

cd example
java -jar start.jar

验证是否启动成功

用浏览器打开 http://localhost:8983/solr/admin/,如果能看到页面,说明启动成功。

6.3 将Nutch与Solr集成在一起

将NUTCH_DIR/conf/schema-solr4.xml拷贝到SOLR_DIR/solr/collection1/conf/,重命名为schema.xml,并在<fields>...</fields>最后添加一行(具体解释见Solr 4.2 - what is _version_field?),

<field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>

重启Solr,

# Ctrl+C to stop Solr
java -jar start.jar

7 使用crawl脚本一键抓取

Nutch自带了一个脚本,./bin/crawl,把抓取的各个步骤合并成一个命令,看一下它的用法

$ bin/crawl 
Missing seedDir : crawl <seedDir> <crawlDir> <solrURL> <numberOfRounds>

注意,是使用bin/crawl,不是bin/nutch crawl,后者已经是deprecated的了。

7.1 抓取网页

$ ./bin/crawl ~/urls/ ./TestCrawl http://localhost:8983/solr/ 2
  • ~/urls 是存放了种子url的目录
  • TestCrawl(这是原作者的文件,我的是crawl)是存放数据的根目录(在Nutch 2.x中,则表示crawlId,这会在HBase中创建一张以crawlId为前缀的表,例如TestCrawl_Webpage)
  • http://localhost:8983/solr/ , 这是Solr服务器
  • 2,numberOfRounds,迭代的次数
  • 注意:我切换到./nutch目录后,使用的命令是:$ bin/crawl urls/ crawl http://localhost:8983/solr/ 2

过了一会儿,屏幕上出现了一大堆url,可以看到爬虫正在抓取!

fetching http://music.douban.com/subject/25811077/ (queue crawl delay=5000ms)
fetching http://read.douban.com/ebook/1919781 (queue crawl delay=5000ms)
fetching http://www.douban.com/online/11670861/ (queue crawl delay=5000ms)
fetching http://book.douban.com/tag/绘本 (queue crawl delay=5000ms)
fetching http://movie.douban.com/tag/科幻 (queue crawl delay=5000ms)
49/50 spinwaiting/active, 56 pages, 0 errors, 0.9 1 pages/s, 332 245 kb/s, 131 URLs in 5 queues
fetching http://music.douban.com/subject/25762454/ (queue crawl delay=5000ms)
fetching http://read.douban.com/reader/ebook/1951242/ (queue crawl delay=5000ms)
fetching http://www.douban.com/mobile/read-notes (queue crawl delay=5000ms)
fetching http://book.douban.com/tag/诗歌 (queue crawl delay=5000ms)
50/50 spinwaiting/active, 61 pages, 0 errors, 0.9 1 pages/s, 334 366 kb/s, 127 URLs in 5 queues

7.2 查看结果

$ bin/nutch readdb TestCrawl/crawldb/ -stats
14/02/14 16:35:47 INFO crawl.CrawlDbReader: Statistics for CrawlDb: TestCrawl/crawldb/
14/02/14 16:35:47 INFO crawl.CrawlDbReader: TOTAL urls:	70
14/02/14 16:35:47 INFO crawl.CrawlDbReader: retry 0:	70
14/02/14 16:35:47 INFO crawl.CrawlDbReader: min score:	0.005
14/02/14 16:35:47 INFO crawl.CrawlDbReader: avg score:	0.03877143
14/02/14 16:35:47 INFO crawl.CrawlDbReader: max score:	1.23
14/02/14 16:35:47 INFO crawl.CrawlDbReader: status 1 (db_unfetched):	59
14/02/14 16:35:47 INFO crawl.CrawlDbReader: status 2 (db_fetched):	11
14/02/14 16:35:47 INFO crawl.CrawlDbReader: CrawlDb statistics: done

8 一步一步使用单个命令抓取网页

上一节为了简单性,一个命令搞定。本节我将严格按照抓取的步骤,一步一步来,揭开爬虫的神秘面纱。感兴趣的读者也可以看看 bin/crawl 脚本里的内容,可以很清楚的看到各个步骤。

先删除第7节产生的数据,

$ rm -rf TestCrawl/

8.1 基本概念

Nutch data is composed of:

  • The crawl database, or crawldb. This contains information about every URL known to Nutch, including whether it was fetched, and, if so, when.
  • The link database, or linkdb. This contains the list of known links to each URL, including both the source URL and anchor text of the link.
  • A set of segments. Each segment is a set of URLs that are fetched as a unit. Segments are directories with the following subdirectories:
    • a crawl_generate names a set of URLs to be fetched
    • a crawl_fetch contains the status of fetching each URL
    • a content contains the raw content retrieved from each URL
    • a parse_text contains the parsed text of each URL
    • a parse_data contains outlinks and metadata parsed from each URL
    • a crawl_parse contains the outlink URLs, used to update the crawldb

8.2 inject:使用种子URL列表,生成crawldb

$ bin/nutch inject TestCrawl/crawldb ~/urls

将根据~/urls下的种子URL,生成一个URL数据库,放在crawdb目录下。

8.3 generate

$ bin/nutch generate TestCrawl/crawldb TestCrawl/segments

这会生成一个 fetch list,存放在一个segments/日期目录下。我们将这个目录的名字保存在shell变量s1里:

$ s1=`ls -d TestCrawl/segments/2* | tail -1`
$ echo $s1

8.4 fetch

$ bin/nutch fetch $s1

将会在 $1 目录下,生成两个子目录, crawl_fetch 和 content。

8.5 parse

$ bin/nutch parse $s1

将会在 $1 目录下,生成3个子目录, crawl_parse, parse_data 和parse_text 。

8.6 updatedb

$ bin/nutch updatedb TestCrawl/crawldb $s1

这将把crawldb/current重命名为crawldb/old,并生成新的 crawldb/current 。

8.7 查看结果

$ bin/nutch readdb TestCrawl/crawldb/ -stats

在建立索引之前,我们首先要反转所有的链接,这样我们就可以获得一个页面所有的锚文本,并给这些锚文本建立索引。

$ bin/nutch invertlinks TestCrawl/linkdb -dir TestCrawl/segments

8.9 solrindex, 提交数据给solr,建立索引

$ bin/nutch solrindex http://localhost:8983/solr TestCrawl/crawldb/ -linkdb TestCrawl/linkdb/ TestCrawl/segments/20140203004348/ -filter -normalize

8.10 solrdedup, 给索引去重

有时重复添加了数据,导致索引里有重复数据,我们需要去重,

$bin/nutch solrdedup http://localhost:8983/solr

8.11 solrclean, 删除索引

如果数据过时了,需要在索引里删除,也是可以的。

$ bin/nutch solrclean TestCrawl/crawldb/ http://localhost:8983/solr

相关文章

Nutch 快速入门(Nutch 2.2.1)

Jan 21st, 2014Search-Engine


Apache Nutch 1.6:开源网络爬虫框架快速启动指南 欢迎阅读我们的IT专业指南,这里将开始对Apache Nutch进行深入探讨。作为现代搜索引擎的基石之一,Apache Nutch在大数据与信息检索领域内扮演着重要角色。它是基于Lucene构建的开源网络爬虫,拥有灵活的架构,能够通过插件化方式扩展其功能,适应不断变化的爬虫需求。网络爬虫的目的是自动地浏览互联网,并对网页内容进行下载、存储和分析。它的核心功能包括但不限于:页面下载:获取网页内容。链接提取:从当前页面中抽取新的链接以供后续抓取。内容处理:对下载的内容进行存储和处理。 阅读详情

相关推荐

Nutch网络爬虫全面入门教程

Nutch的爬虫部分包含多个关键组件,它们协同工作以实现网页数据的有效抓取:种子(Seeds):初始的URL集合,用于启动爬虫的抓取过程。抓取器(Fetcher):负责发送HTTP请求,获取网页内容。生成器(Generator):从获取的网页中提取新的URL,更新种子列表。更新调度器(Scheduler):决定何时抓取哪些网页,避免重复抓取,优化资源利用。数据库(Database):存储了URL的元数据,如抓取时间、状态码等,还有页面内容、链接等。

weixin_35749440的博客 890

学习ApacheNutch:一个高性能的网络爬虫框架

1.背景介绍 在本文中,我们将深入探讨Apache Nutch,一个高性能的网络爬虫框架。我们将涵盖以下主题: 背景介绍 核心概念与联系 核心算法原理和具体操作步骤以及数学模型公式详细讲解 具体最佳实践:代码实例和详细解释说明 实际应用场景 工具和资源推荐 总结:未来发展趋势与挑战 附录:常见问题与解答 1. 背景介绍 Apache Nutch是一个开源的网络爬虫框架,由Apache ...

AI天才研究院 3691

数字设计与计算机体系结构习题答案,数字设计和计算机体系结构习题答案DigitalDesignandComputerArchitecture.pdf...

数字设计和计算机体系结构习题答案DigitalDesignandComputerArchitecture.pdfDavid Money Harris and Sarah L. Harris, Digital Design and Computer Architecture, © 2007 by Elsevier Inc.Exercise SolutionsC H A P T E R ...

weixin_39851408的博客 1785

Nutch使用方法简介

                                  Nutch使用方法简介 目前Nutch采用Sehll的启动方式,如果您使用的是Windows系统,那么首先需要安装Cygwin。本文就以在Windows中为例,介绍Nutch的安装和使用方法。 (1)准备需要的软件列表    Cygwin     (下载地址:http://www.cygwin.com/se

pengpengfly的专栏 6369

DVWA靶场实战:从搭建到渗透测试的完整指南

本文详细介绍了DVWA靶场的搭建与渗透测试全流程,涵盖LAMP环境搭建、Docker部署及集成环境安装三种方式。通过SQL注入、文件上传漏洞等实战案例,帮助读者掌握Web安全测试技巧,并提供防御方案与进阶调优建议,是网络安全学习的实用指南。

weixin_28312391的博客 490

Unity3D赛车游戏+脚本基础

本章主要介绍Unity的基础开发流程以及涉及到的概念。这个过程需要我们学会编写一些游戏脚本,在这讲的过程中我们会完成一个赛车小游戏,因此,在讲述这些基本概念和流程的时候,会同时涉及到一点脚本的开发基础.在游戏,电影和动画中,都有一个渲染的帧率,电影是24帧/s,游戏大概是30帧/s(当然也有60帧/s的)。在unity里面1秒钟,Update方法执行了30次。1秒钟有30帧,帧与帧之所消耗的时间是不一样的,那么我如何知道上一帧用了多少时间?Time.deltaTime就是为了解决这个问题。

m0_58367586的博客 7660

nutch系列1——nutch简单介绍

Nutch起源于ApacheLucene项目,已经是一个高度可扩展和可伸缩的开源网络爬虫软件项目,并且实现了多元化,包括两个版本的代码库,即: 1.Nutch1.x版本:一个成熟的产品化的爬虫。1.x版本依赖于Apache Hadoop的数据结构,并使用了细粒度配置。Hadoop对于批处理提供了很强大的功能。

Mr.稻 帅(梦想如歌!) 1192

双层优化入门(2)—基于yalmip的双层优化求解(附matlab代码)

​上一篇博客介绍了双层优化的基本原理和使用KKT条件求解双层优化的方法,这篇博客将介绍使用yalmip的双层优化问题的求解方法。 1.KKT函数 通过调用yalmip工具箱中的KKT函数,可以直接求出优化问题的KKT条件,省去自己手动写的步骤。 2.solvebilevel函数 solvebilevel是yalmip工具箱内置的求解双层优化问题的函数。也就是通过这个函数,不需要咱手动写KKT条件,也不需要使用KKT函数,直接把上、下层优化的目标函数、约束条件往里面一放,就能求出结果。 ​

配电网和matlab的博客 1万+

爬取下来的数据如何去重

通过 MD5 生成电子指纹来判断页面是否改变 nutch 去重。nutch 中 digest 是对采集的每一个网页内容的 32 位哈希值,如果两个网页内容完 全一样,它们的 digest 值肯定会一样。 数据量不大时,可以直接放在内存里面进行去重,python 可以使用 set()进行去重。当去重数据 需要持久化时可以使用 redis 的 set 数据结构。 当数据量再大一点时,可...

XIAOYUE3035的博客 512

CST仿真实例001:圆极化平板天线仿真

CST仿真实例001:圆极化平板天线仿真实例

weixin_47638568的博客 1万+

骁龙X Elite笔记本重装Windows 11 Arm64系统完整指南与避坑手册

UEFI安全启动和Arm64架构是理解现代计算设备系统部署的基础。UEFI取代传统BIOS,提供了更安全的启动环境和模块化固件接口,而Arm64架构则以其高能效特性,在移动和新兴PC领域日益重要。其技术价值在于为设备带来更快的启动速度、更强的安全防护以及更优的功耗表现。在应用场景上,这直接关系到搭载高通骁龙X Elite等Arm处理器的笔记本电脑的系统安装与维护。对于这类设备,重装系统远非插入通用安装盘那么简单,核心挑战在于必须使用专为Arm64编译的Windows镜像,并需提前集成芯片组、网络等硬件的专属

weixin_33428613的博客 488

Nutch 快速入门(Nutch 2.2.1)

原文:http://cn.soulmachine.me/blog/20140201/ Nutch 2.x 与 Nutch 1.x 相比,剥离出了存储层,放到了gora中,可以使用多种数据库,例如HBase, Cassandra, MySql来存储数据了。Nutch 1.7 则是把数据直接存储在HDFS上。 1. 安装并运行HBase 为了简单起见,使用Standalo

追求卓越的攻城狮 1451

ECC椭圆曲线加解密原理详解(配图)

椭圆曲线加解密原理详解 本文主要参照:ECC椭圆曲线详解(有具体实例)[1] 前言: 椭圆曲线(ECC)加密原理跟RSA加解密原理比起来,可真是晦涩难懂。拜读了大神Kalafinaian文章“ECC椭圆曲线详解(有具体实例)”,终于看到了参透的曙光。 由于原文中有微小的瑕疵,也为了便于阅读起来更加流畅,我重新整理了一下这篇文章。 为什么使用椭圆曲线加密算法? RSA的解决分解整数问题需要亚指数...

Mark的博客 7万+

爬虫技术python nutch_把Nutch爬虫部署到Hadoop集群上

软件版本:Nutch 1.7, Hadoop 1.2.1, CentOS 6.5, JDK 1.7前面的3篇文章中, Nutch 快速入门(Nutch 1.7) , Nutch 快速入门(Nutch 2.2.1) ,在Eclipse里运行Nutch,Nutch都是跑在单机上,本文把Nutch部署到Hadoop集群上,在真正的分布式Hadoop集群上跑。前提1 启动Hadoo...

weixin_39846289的博客 280

[DDR5]DDR5 SDRAM 状态图 和 基本功能

DDR5 SDRAM的读写操作以突发(burst mode)为导向,从选定的位置开始,并按照编程顺序进行16个突发长度或8个“切片”突发长度的操作。从ACTIVATE命令开始,然后是读取或写入命令。

串起点滴 1201

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Nutch 笔记(一):Nutch 快速上手指南(收藏)

原著未明,仅做收藏,谅解.QUOTE:这个笔记还是以前做项目时,用到nutch,写了两篇笔记,这个只是简单的不能再简单的使用说明而已,没什么太大的用处,就算给希望使用而不知道怎么使用的朋友一点建议吧 screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=hand

clong1112的专栏 995

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

linux环境nutch的配置,Nutch 1.3 在Ubuntu上的简单配置

因为Nutch 1.3跟以前比改了不少东西,所以1.2中的有些配置已经不在适用了首先我的机器用的是Ubuntu 10.04,挺老的版本了,因为有它的光盘,一直没有升级当然是先下载nutch的包了,用的人人的镜像http://labs.renren.com/apache-mirror//nutch/只有先会用了才能进行下一步的工作嘛,所以介绍一下最简单的配置方法:1. 修改nutch解压目录中的r...

weixin_30536391的博客 159

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Nutch2.2.1 笔记二 : Nutch2.2.1 + Mysql 配置,调试

Nutch2.x 使用gora做数据抽象层,底层的数据存储可以支持Mysql,HBase,Cassandra等,而1.x是基于HDFS的。Nutch2.x官方推荐的是和HBase结合,不过这里我们先配置Nutch2.2.1和Mysql运行,因为Mysql查询起来更加直观,难...

余老师的语文博客 247

Nutch2.1 in eclipse

Nutch2.1 in eclipse 主要目的: 1. 将nutch2.1放入eclipse中,便于调试源代码,查看nutch2.1是如何实现的。 2. 方便学习编写nutch2.1的plugin 准备: Linux环境 Nutch2.1 Mysql Java1.6 Eclipse 开始: 首先需要安装好jdk1.6,mysql,eclipse 开启eclip...

闪烁的星空 287

Nutch教程——准备篇 by 逼格DATA

实在是看不下去Nutch官方的坑爹教程了,总结一套看完能懂的Nutch教程,持续更新中。 开发环境和基础: 学习Nutch,必须满足以下几个条件,缺一不可: 1)Linux环境,实在是没办法就在Windows上装linux虚拟机。 2)熟悉Java。 3)有Hadoop基础,能够编写hadoop下map reduce程序。 4)能够看懂Linux Shell。 下

gywtzh0889的专栏 886

myeclipse8.5搭建nutch1.2

十一期间打算学些nutch+lucene+solr方面的知识,现将这两天主要学的myeclipse8.5+nutch1.2总结如下,当然也可以选择nutch1.3,这个是最新的,但是网上关于1.3版本的可参考资料太少了,最后也没成功,所以只能退而求其次,幸好搭建成功了。言归正传 1、资源要备齐:cygwin,myeclipse8.5,nutch发布版本文件nutch的源文件,即nutch1.2-

erliang20088的博客 716

在Eclipse中调试运行Nutch

昨天花了一天时间都没有搞定Nutch(nutch 0.8版本)。今天终于在同学提示下搞定了。总结一下这个恶心的东西,免得其他同志们再浪费宝贵的生命。注意你遇到问题肯定都是配置问题,不可能是源程序的问题,要不然nutch就肯定运行不了了。通常在控制台运行nutch是没有问题的。至于具体的运行Crawl参考:nutch 0.8 tutorial。关键的配置有conf下面的nutch-site.xml,

秋风吹渭水,落叶满长安 1295

在eclipse下编译运行nutch

<br />1.       下载Nutch 并解压到某个目录下,建议在根目录下。<br /><br /><br />2.       修改Nutch/conf目录下的nutch-site.xml和crawl-urlfilter.txt 两个文件,具体的修改方法如下:<br />(1) nutch-site.xml:  <br />在<configuration></configuration>中间插入以下内容:<br /><property> <br /> <name>http.agent.name

noOnlyAndroid的专栏 992

nutch install

nutch install on ubuntuhttp://wiki.apache.org/nutch/NutchTutorial#A1_Setup_Nutch_from_binary_distribution还是要看官方的文档,之前google了一个早期1.0版本...

88

nutch1.8+solr 4 配置过程

Nutch 2.2.1目前性能没有Nutch 1.7好,参考这里,NUTCH FIGHT! 1.7 vs 2.2.1. 所以我目前还是使用的Nutch 1.8。 1 下载已编译好的二进制包,解压 $ wget http://psg.mtu.edu/pub/apache/nutch/1.8/apache-nutch-1.8-bin.tar.gz $ tar zxf apache-nutc

tbdp6411的专栏 998
上一篇: ubuntu 安装 jdk1.7.0
下一篇: 用net start mysql , 提示发生系统错误 5;拒绝访问!
lixwcqs
博客等级 码龄16年 23粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值