[Nutch]Nutch抓取过程中生成的目录内容分析

上一篇博文中有和大家介绍了nutch爬虫抓取数据的整个过程,爬虫一般会抓取到很多的内容,那么这些内容都存放到什么地方了呢?其实nutch在抓取的过程中会产生很多的目录,会把抓到的内容分别保存到不同的目录之中。那么,这些目录的结构的什么样的?每个目录里面又保存了哪些内容呢?本篇博文将为你揭晓。

从上一篇博文我们可以知道,nutch爬虫在执行数据抓取的过程中,在data目录下面有crawldb和segments两个目录:

下面我们对这两个目录里面的内容做详细的介绍:

1. crawldb

crawldb里面存储的是爬虫在抓取过程中的所有的URL,里面也有两个目录:current和old。

之前已经抓取过的url放到old目录中,当前需要执行的放到current目录里面。

在current目录下面有一个文件夹part-0000,如果是deploy模式的分布式方式,在这个目录下会有相关的其他一些目录,如:part-0001,part-0002等。在part-0000下面也有两个目录:data和index。

这个是hadoop的自身文件格式,其中

  1. data存放hadoop的所有的表库;
  2. index主要存放一些简单的索引,用于加快和方便查找。

2. segments

在segments目录下面,nutch没运行一个抓取周期,都会在segments目录下面生成一个文件夹:

上一篇博文里面我们在运行抓取的时候带的参数的depth是设置为3:

nohup bin/nutch crawl urls -dir data -depth 3 -threads 100 &

所以在这个命令运行完成之后,会生成3个目录,这3个目录都是以当前的时间作为标识。

在每个文件夹下面都存在6个子文件夹:

从上一篇博文里面的第4小结可以看出nutch爬虫抓取数据的整个过程:

而从这个图里面,也可以看出,segments目录下面的每个文件夹中的6个子文件夹都在Segment N里面,并且每个文件夹都与nutch爬虫抓取的4个过程有着相当紧密的联系。

从上图里面可以看出:

1. crawl_generate文件夹是nutch爬虫在执行第1个过程generator的时候产生的。

2. crawl_fetch和content文件夹都是nutch爬虫在执行第2个过程Fetcher的时候产生的。其中:

(1) content文件里里面保存的就是nutch爬虫抓取的网页的源代码的二进制的内容。

(2)crawl_fetch是每个url的抓取状态:成功抓取、抛出异常或者是其他的各种各样的状态。

3. crawl_parse、parse_data和parse_text是nutch爬虫在执行第3个过程parse segment的时候 产生的。其中:

(1)crawl_parse 是每个url的解析状态。有解析成功和解析失败。

(2)parse_data 是保存抓取内容的源数据。

(3)parse_text 是保存抓取内容的文本数据。

等nutch爬虫抓取完成之后,我们可以看到在data目录下面变成了3个目录,多了一个linkdb:

3. linkdb

linkdb目录主要存放在连接过程中产生的内容,同样的有一个part-0000目录,在这个目录下面也有data和index两个子目录。

时间: 2024-12-27 16:45:03

[Nutch]Nutch抓取过程中生成的目录内容分析的相关文章

解决Jsoup网页抓取过程中需要cookie的问题

最近在做城觅网的信息抓取,发现城觅网上海与北京的url是一样的.那怎样才确定信息的来源呢?折腾了半天,才发现城觅网是使用cookie的,如果你把网站的cookie禁用了,就无法在上海与北京之间切换了. 于是便想到了请求时将cookie带上.方法如下: 第一步,拿到上海或者北京的cookie Map<String, String> cookies = null; Response res = Jsoup.connect("http://www.chengmi.com/shanghai&

Nutch学习笔记——抓取过程简析

Nutch学习笔记二--抓取过程简析 学习环境: ubuntu 概要: Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. 通过nutch,诞生了hadoop.tika.gora. 先安装SVN和Ant环境.(通过编译源码方式来使用nutch) apt-get install ant apt-get install subversion [email protected]:~/data/nutch$ svn co https:

抓取网页中的内容、如何解决乱码问题、如何解决登录问题以及对所采集的数据进行处理显示的过程

本文主要介绍如何抓取网页中的内容.如何解决乱码问题.如何解决登录问题以及对所采集的数据进行处理显示的过程.效果如下所示: 1.下载网页并加载至HtmlAgilityPack 这里主要用WebClient类的DownloadString方法和HtmlAgilityPack中HtmlDocument类LoadHtml方法来实现.主要代码如下. var url = page == 1 ? "http://www.cnblogs.com/" : "http://www.cnblogs

抓取scrapy中文文档 第一个Scrapy项目实现

使用Scrapy这个python的网络爬虫框架抓取Scrapy中文文档 开发第一步:新建项目scrapy startproject myfirst 目录结构: myfirst │ scrapy.cfg Scrapy项目配置文件 │ └─myfirst Scrapy项目代码存放目录 │ items.py 存储从抓取的网页中需要保存的数据,再其中指定要存储的域 │ pipelines.py 管道文件,用于存储从抓取的网页中解析出的其他页面的url,相当于任务队列 │ settings.py 爬虫配置

浅谈如何使用python抓取网页中的动态数据

我们经常会发现网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念, 动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到浏览器后动态生成的,而之前并没有的. 在编写爬虫进行网页数据抓取的时候,经常会遇到这种需要动态加载数据的HTML网页,如果还是直接从网页上抓取那么将无法获得任何数据. 今天,我们就在这里简单聊一聊如何用python来抓取页面中的JS动态加载的数据. 给出一个网页:豆瓣电影排行榜,其中的所有电影信息都

(转)抓包工具Fidder详解(主要来抓取Android中app的请求)

今天闲着没吊事,来写一篇关于怎么抓取Android中的app数据包?工欲行其事,必先利其器,上网google了一下,发现了一款神器:Fiddler,这个貌似是所有软件开发者必备神器呀!这款工具不仅可以抓取PC上开发web时候的数据包,而且可以抓取移动端(Android,Iphone,WindowPhone等都可以),太强大了,以前搞web的时候,知道有一款叫做HttpWatch工具,可以抓取web的请求数据包的,但是和这款神器来比较,那都弱爆了!吹到现在都是无用的,下面就来看看实例吧!开始兴奋吧

抓包工具Fidder详解(主要来抓取Android中app的请求)

抓包工具Fidder详解(主要来抓取Android中app的请求) 今天闲着没吊事,来写一篇关于怎么抓取Android中的app数据包?工欲行其事,必先利其器,上网google了一下,发现了一款神器:Fiddler,这个貌似是所有软件开发者必备神器呀!这款工具不仅可以抓取PC上开发web时候的数据包,而且可以抓取移动端(Android,Iphone,WindowPhone等都可以),太强大了,以前搞web的时候,知道有一款叫做HttpWatch工具,可以抓取web的请求数据包的,但是和这款神器来

用正则表达式抓取网页中的ul 和 li标签中最终的值!

获取你要抓取的页面 const string URL = "http://www.hn3ddf.gov.cn/price/GetList.html?pageno=1";            string htmlStr = null;            for (int i = 0; i < 10; i++)            {                try                {                    System.Net.Http

Fiddler 抓取eclipse中的请求

代码中添加 System.setProperty("http.proxySet", "true"); System.setProperty("http.proxyHost", "127.0.0.1"); System.setProperty("http.proxyPort", "8888"); 或者eclipse 中设置 Windows > preferences > jav