nutch的基本工作流程理解

转载 2013年12月02日 09:53:43

(一):Nutch的工作流程:

Crawdb、linkdb

是web link目录,存放url及url的互联关系,作为爬行与重新爬行的依据。

segments

是主目录,存放抓回来的网页。页面内容有bytes[]的raw content 和 parsed text的形式。nutch以广度优先的原则来爬行,因此每爬完一轮会生成一个segment目录。

index

是lucene的索引目录,是indexes目录里所有index合并后的完整索引,注意索引文件只对页面内容进行索引,没有进行存储,因此查询时要去访问segments目录才能获得页面内容。

(一):流程综述:

【1】:inject start urls

注入抓取URL。因为Nutch的抓取程序是要抓取网页,而定位到某个网页需要制定一个URL,所以Nutch按照广度遍历策略进行抓取,会根据一开始指定的URL,也可以是一个URLS集合,以此基础进行抓取工作。

【2】:generate segment

生成segment。Nutch抓取程序需要抓取到很多的页面,那么具体是哪些页面的?当然,在互联网上是通过URL来定位的。这一步骤主要是对上一步提交的URL集合进行分析,确定抓取任务的详细信息。

【3】fetch list

分析提交的URL集合之后,建立一个抓取任务列表。在以后的抓取工作中就可以根据预处理的此列表进行工作了。

【4】:www

这是通过访问万维网(www),实现抓取工作。

【5】:fetch content

开始根据前面生成的抓取任务列表中指定的URL对应的页面,这时候开始抓取工作了。

【6】:fetched content

需要将抓取到的这些页面文件存放到指定的位置,这些页面文件可以是经过简单预处理以后而被存储到文件系统中,也可以是原生的网页文件,以备后继流程基于这些文件来进一步处理,比如分词,建立索引。

content parser

内容解析器。抓取到的页面文件被提交到这里,实现对页面文件的处理,包括页面文件的分析和处理。

【7】:parse content

当然,我们抓取的数据是结构和内容非常复杂的数据,而我们感兴趣的主要是文件的内容,因为基于关键字检索的搜索引擎的实现,都是根据文本内容来实现的。

【8】:parsed text & data

通过content parser解析器,最终获取到的就是文本内容和其它一些可能需要用到的数据。有了这些可以识别的文本内容和数据,就可以基于此来建立索引库,而且需要将本次抓取任务的详细信息登录到crawlDB,为下次抓取任务提供有用的信息(比如:避免重复抓取相同的URL指定的页面)。

因此接下来分为两个方向:一个是索引,一个是更新crawlDB并继续执行抓取任务:

【9】:indexing

这是一个索引的过程,对分析处理完成并提交的文本及其数据建立索引,通过索引文件就可以实现信息的检索功能了。建立索引过程中,由于是基于Lucene的,所以用到了Analyzer分析器,对预处理的文件进行分析、过滤、分词等等,最后将写入到索引库,供搜索程序工作使用。

【10】:update crawlDB with new extracted urls

根据网页分析处理获取到的信息,更新crawlDB(爬行数据库),并根据提取到的抓取任务已经注入的URLs循环执行抓取任务。

(二):Nutch工作流程总结

上面的流程已经分析地非常透彻了,参考一些资料做个总结吧。通过下面总结的工作流程,理清思路,很有帮助的,如下所示,Nutch的工作流程描述:

抓取程序工作流程

(1.) 建立初始URL集

(2.) 将URL集注入crawldb数据库---inject

这一步骤,上面的图中没有涉及到。既然需要维护一个crawlDB,那么在任何时候只要与抓取任务有关的而且是有用的信息都会被写入crawlDB的

(3.) 根据crawldb数据库创建抓取列表---generate

(4.) 执行抓取,获取网页信息---fetch

(5.) 更新数据库,把获取到的页面信息存入数据库中---updatedb

(6.) 重复进行3~5的步骤,直到预先设定的抓取深度。---这个循环过程被称为“产生/抓取/更新”循环

(7.) 根据sengments的内容更新linkdb数据库---invertlinks

(8.) 建立索引---index

搜索程序工作流程

(1.) 用户通过用户接口进行查询操作

(2.) 将用户查询转化为lucene查询

(3.) 从索引库中提取满足用户检索需求的结果集

(4.) 返回结果

 



相关文章推荐

Nutch1.7学习笔记2:基本工作流程分析

Nutch1.7学习笔记2:基本工作流程分析 作者:雨水,时间:2013-11-13博客地址:http://blog.csdn.net/gobitan 说明:本文的工作流程分析基于1.x的最新版Nut...

nutch工作流程简介

先用一幅图来形容nutch的工作流程:  先对上图做一个简单说明,图中标的数字为nutch工作的顺序。它的基本流程可分为两部分,即抓取部分和搜索部分: 一、抓取部分(网络爬虫) ...

Nutch Crawler工作流程及文件格式详细分析

Crawler和Searcher两部分被尽是分开,其主要目的是为了使两个部分可以布地配置在硬件平台上,例如Crawler和Searcher分别被放置在两个主机上,这样可以极大的提高灵活性和性能。 一...

爬虫调研II:Nutch的工作流程和扩展性

Nutch 的工作流程可以分为两个大的部分:抓取部分与搜索部分。抓取程序抓取页面并把抓取回来的数据进行反向索引,搜索程序则对反向索引进行搜索回答用户的请求,索引是联系这两者的纽带。    I. cr...

转:cygwin简单应用及Nutch之Crawler工作流程

cygwin简单应用: cygwin home 目录: ls /                   -- 根目录 ls /cygdrive     ...

Nutch爬虫工作流程及文件格式详细分析

Nutch主要分为两个部分:爬虫crawler和查询searcher。Crawler主要用于从网络上抓取网页并为这些网页建立索引。Searcher主要利用这些索引检索用户的查找关键词来产生查找结果。两...

Nutch工作流程

Nutch工作流程:建立初始URL集合分析 初始URL集的建立有两种方式:超链接和站长提交。 超链接 是指机器人程序根据网页链到其他网页中的超链接,就像日常生活中所说的“一传十,十传百……”一样,...

eMMC常识及其工作基本流程

  • 2017-04-20 15:50
  • 1.38MB
  • 下载

struts1.3基本工作流程剖析

MVC: 随着项目规模的不断扩大,原有的控制和业务逻辑代码如果全部封装到一个类里面,整个代码就会变得非常混乱,对于项目后续的维护也是不小的压力,为了使得整个项目开发的结构层次清晰,出现了一种新的...

Yarn的基本工作流程

Yarn基本工作流程图和步骤解释
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)