Nutch抓取数据分析

转载 2012年03月27日 10:30:22
 684人阅读 评论(0) 收藏 举报

由于刚开始理解错误,以为搜索索引可以作为数据挖掘的输入信息,后面才发现错了,由solr/nutch/lucene形成的只是搜索索引,只要由用户提供查询关键字,然后就可以查到该关键字来自哪一篇文档,并不是一篇文档的文字列表信息,而挖掘是需要有整篇文档的文字列表(档中所有单词的集合),才能挖出其中的关联信息。

详细看了一下Nutch抓取数据后的文件:

Nutch的输出文件主要可分为crawldb、index、indexs、linkdb和segments。

Crawldb是所有需要抓取的超连接信息

(另说:存放下载的URL,及下载的日期,用来页面更新检查时间)

Linkdb中存放的是所有超连接及其每个连接的连入地址锚文本

segments : 一存放抓取的页面,与上面链接深度 depth 相关, depth 设为 2 则在 segments 下生成两个以时间命名的子文件夹,比如 "20110718114601"。Segments是每轮抓取的时候根据crawldb生成的。存放的信息包括6种content、crawl_fetch、crawl_generate、crawl_parse、parse_data、parse_text。其中content是抓取下来的网页内容crawl_generate最初生成(待下载URL集合);crawl_fetch(每个下载URL的状态)、content在抓取时生成;crawl_parse(包含用来更新crawldb的外链)、parse_data、parse_text在解析抓取的数据文件时生成。其中crawl_generate、crawl_fetch和crawl_parse是crawldb的部分url数据,它们格式一样,不同的是抓取时间、状态、签名等有所变化。

indexs:存放每次下载的独立索引目录,这个可以由Crawldb,Linkdb和segments来合成:bin/nutch index crawl/indexs crawl/crawldb crawl/linkdb crawl/segments/*

index:由indexs合并而来的,存放的是索引信息。(nutch的索引中没有存储内容,内容存在segments中,所以直接用lucene读取nutch生成的索引会有问题。Lucene 中的segment和Nutch中的不同,Lucene中的segment是索引index的一部分,但是Nutch中的segment只是WebDB中 各个部分网页的内容和索引,最后通过其生成的index跟这些segment已经毫无关系了。)

因为挖掘用到的不是索引文件,而是文档的解析单词列表,所以我们关注nutch是怎么解析网页的。一般网络爬虫抓取网页时会解析网页内容并将内容下载到本地保存,若能解析网页,自然解析pdf文档也不会有问题,nutch对富文本的解析是以插件的形式,所以只需要配置文件中加上该选项便可。关键问题是,如何去提取这些已经解析出来的文本呢?由于segments下的所有文件都是二进制文件,不知道如何转成我们可视的文本字符,nutch提供了命令来导出抓取数据以便查看,如为了得到linkdb中的内容,我们可

使用bin/nutch readlinkdb crawl/linkdb/ -dump linkdb(导出的地址),然后就会看到linkdb文件夹下有个part-00000,然后就可以以文本方式打开。关键是我们想得到的是parse_data和parse_text,而segments数据的导出是一个整体,bin/nutch readseg -dump crawl/segments/20110718114601segdb 导出segments,其中crawl/segments/20110718114601为一个segments文件夹,segdb为存放转换后的内容的文件夹,这样查看时,包括了segments文件夹下所有文件的信息,在网上找了半天,没找到可以直接操作parse文件的命令,有知道的大侠,还烦请转告!或者怎么用这个解析文件信息,有用过的,也请留言赐教!

在readseg命令后,加可选参数命令,-nocontent,这样就不会导出content,-noparsedata,这样就不会导出parse_data,有这样的命令后,便可只导出parse_text,即经过解析的文本,如网页content,即包含里面的标签元素,而parse_text,则是去除网页格式的文本信息

 

参考资料:

1.http://wenku.baidu.com/view/c6fd2f4c2e3f5727a5e962ce.html

2.http://blog.csdn.net/forwen/article/details/4804733

3.http://blog.163.com/bit_runner/blog/static/53242218201141393943980/

4.http://www.cnblogs.com/kwklover/articles/445928.html

Nutch抓取数据内容的详解

命令:$ bin/nutch crawl tianya -dir crawl_tianya -depth 3 -topN 10(存放seed路径在tianya目录下) 抓取过程为: Inj...
  • qiange520
  • qiange520
  • 2016-03-03 18:15:49
  • 2130

深入分析nutch的抓取流程

分析Nutch的工作流程 Nutch爬虫工作策略 Nutch爬虫的工作策略一般则可以分为累积式抓取(cumulative crawling)和增量式抓取(incrementalcr...
  • yeahi
  • yeahi
  • 2015-11-09 14:08:57
  • 4543

Nutch 查看抓取的文件

ls data           -- 有3个文件夹 crawldb  linkdb  segments ls data/crawldb   -- 有2个文件夹:curren...
  • zhaoyue007101
  • zhaoyue007101
  • 2015-11-11 12:14:49
  • 1295

nutch 抓取流程解析

在上篇学习笔记中http://www.cnblogs.com/huligong1234/p/3464371.html 主要记录Nutch安装及简单运行的过程。 笔记中 通过配置抓取地址http://b...
  • yeahi
  • yeahi
  • 2015-11-09 11:48:56
  • 703

nutch1.12增加抓取ajax功能页面插件

目前nutch有1.x和2.x两个版本,这两个版本并行更行。由于有人说2.x不成熟,问题较多,因此本人选用1.12.但是1.12不能抓取ajax渲染的页面,google上查到,1.8有个版本,有个大牛...
  • cardinalzbk
  • cardinalzbk
  • 2016-08-29 09:56:00
  • 1142

nutch抓取动态网页

解决搜索动态内容的问题: 需要注意在conf下面的2个文件:regex-urlfilter.txt # skip URLs containing certain characters as pro...
  • gaokao2011
  • gaokao2011
  • 2013-12-02 10:26:45
  • 1264

Nutch 读取搜索结果目录统计数据、提取链接结构信息

详看 Nutch命令 有中文介绍1.readdb读取Crawldb目录数据的一个命令检索完成后的第一件事情当然是查看一下数据库中的网页和链接的数目,这可以让我们确信Nutch已经成功的爬行了网页。Re...
  • jiutao_tang
  • jiutao_tang
  • 2011-06-09 11:04:00
  • 4531

Nutch源代码研究 网页抓取 fetch

搜索引擎Nutch源代码研究之一 网页抓取:  Nutch的爬虫代码部分主要集中在:package org.apache.nutch.fetcher和插件protocol-file  Protoc...
  • atco
  • atco
  • 2013-06-05 11:10:16
  • 2550

nutch爬取新闻,如何做到指定的定时更新

爬新闻,需要注意的是,一定要更新 #!/bin/sh export JAVA_HOME=/usr/java/jdk1.6.0_45 export CLASSPATH=.:$JA...
  • leave00608
  • leave00608
  • 2014-06-03 14:54:55
  • 3842

[Nutch]Nutch重要命令使用说明

对nutch抓取周期以外的几个重要的命令的使用进行详细的说明。
  • Kandy_Ye
  • Kandy_Ye
  • 2016-05-02 13:58:47
  • 2657
收藏助手
不良信息举报
您举报文章:Nutch抓取数据分析
举报原因:
原因补充:

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