`
lmx800
  • 浏览: 30085 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

Nutch爬虫实验运行及抓取数据分析(二)

阅读更多
续接《Nutch爬虫实验运行及抓取数据分析(一)》:
在分析了WebDB之后,下面我们继续分析Nutch爬虫在对实验网络抓取之后其它的结果文件内容。
 
 
 
 
Segments
 
 
 
 
Crawler在抓取中共生成了三个segment,分别存放于segments文件夹下的以时间戳为文件夹名的三个子文件夹下面。每个segment代表Crawler的一次“产生/抓取/更新”循环。Nutch中提供了如下的命令可以清晰的看到segments的简介:
 
 
 
 
bin/nutch segread -list -dir crawl-tinysite/segments/
命令结果如下所示:
PARSED? STARTED           FINISHED          COUNT DIR NAME
true    20051025-12:13:35 20051025-12:13:35 1    
crawl-tinysite/segments/20051025121334
 
<divre></divre> true    20051025-12:13:37 20051025-12:13:37 1    
 
crawl-tinysite/segments/20051025121337

 

<divre></divre> true    20051025-12:13:39 20051025-12:13:39 2    
 
crawl-tinysite/segments/20051025121339

 

TOTAL: 4 entries in 3 segments.
 
 
 
 
结果中PARSED?列表示的是在抓取之后是否接着进行解析和索引,默认的都是true。但是
如果你利用底层命令进行抓取操作的时候,你可以在抓取之后独立地再另外进行解析和索
引工作,此时此列才会为falseSTARTEDFINISHED两列记录的是此循环的开始时间和
结束时间,这些信息可以帮助用户分析那些抓取时间过长的页面是怎么回事。COUNT列代
表的是此segment内包含的被抓取回来的网页数目,例如最后一个segment此列值为2,代表
的是segment中有两个被抓取回来的网页,即C网页和C-dup网页。
 
 
 
但是这些简介信息并不够详细,下面的命令可以可以更清楚的看到单个segment的
详细信息,我们以第一个segment为例:
 
 
 
 
<divre></divre> s=`ls -d crawl-tinysite/segments/* | head -1`

 

 
bin/nutch segread -dump $s
结果为:
<divre></divre> Recno:: 0

 

 
<divre></divre> FetcherOutput::

 

 
<divre></divre> FetchListEntry: version: 2

 

 
<divre></divre> fetch: true

 

 
<divre></divre> page: Version: 4

 

 
<divre></divre> URL: http://keaton/tinysite/A.html

 

 
<divre></divre> ID: 6cf980375ed1312a0ef1d77fd1760a3e

 

 
<divre></divre> Next fetch: Tue Nov 01 11:13:34 GMT 2005

 

 
<divre></divre> Retries since fetch: 0

 

 
<divre></divre> Retry interval: 30 days

 

 
<divre></divre> Num outlinks: 0

 

 
<divre></divre> Score: 1.0

 

 
<divre></divre> NextScore: 1.0

 

 
<divre></divre>  

 

 
<divre></divre> anchors: 1

 

 
<divre></divre> anchor: A

 

 
<divre></divre> Fetch Result:

 

 
<divre></divre> MD5Hash: fb8b9f0792e449cda72a9670b4ce833a

 

 
<divre></divre> ProtocolStatus: success(1), lastModified=0

 

 
<divre></divre> FetchDate: Tue Oct 25 12:13:35 BST 2005

 

 
<divre></divre>  

 

 
<divre></divre> Content::

 

 
<divre></divre> url: http://keaton/tinysite/A.html

 

 
<divre></divre> base: http://keaton/tinysite/A.html

 

 
<divre></divre> contentType: text/html

 

 
<divre></divre> metadata: {Date=Tue, 25 Oct 2005 11:13:34 GMT, Server=Apache-Coyote/1.1,

 

 
<divre></divre> Connection=close, Content-Type=text/html, ETag=W/"1106-1130238131000",

 

 
<divre></divre> Last-Modified=Tue, 25 Oct 2005 11:02:11 GMT, Content-Length=1106}

 

 
<divre></divre> Content:

 

 
<divre></divre> <?xml version="1.0" encoding="UTF-8"?>

 

 
<divre></divre> <!DOCTYPE html

 

 
<divre></divre> PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

 

 
<divre></divre> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

 

 
<divre></divre> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

 

 
<divre></divre> <head>

 

 
<divre></divre> <title>'A' is for Alligator</title>

 

 
<divre></divre> </head>

 

 
<divre></divre> <body>

 

 
<divre></divre> <p>

 

 
<divre></divre> Alligators live in freshwater environments such as ponds,

 

 
<divre></divre> marshes, rivers and swamps. Although alligators have

 

 
<divre></divre> heavy bodies and slow metabolisms, they are capable of

 

 
<divre></divre> short bursts of speed that can exceed 30 miles per hour.

 

 
<divre></divre> Alligators' main prey are smaller animals that they can kill

 

 
<divre></divre> and eat with a single bite. Alligators may kill larger prey

 

 
<divre></divre> by grabbing it and dragging it in the water to drown.

 

 
<divre></divre> Food items that can't be eaten in one bite are either allowed

 

 
<divre></divre> to rot or are rendered by biting and then spinning or

 

 
<divre></divre> convulsing wildly until bite size pieces are torn off.

 

 
<divre></divre> (From

 

 
<divre></divre> <a href="http://en.wikipedia.org/wiki/Alligator">the

 

 
<divre></divre> Wikipedia entry for Alligator</a>.)

 

 
<divre></divre> </p>

 

 
<divre></divre> <p><a href="B.html">B</a></p>

 

 
<divre></divre> </body>

 

 
<divre></divre> </html>

 

 
<divre></divre>  

 

 
<divre></divre> ParseData::

 

 
<divre></divre> Status: success(1,0)

 

 
<divre></divre> Title: 'A' is for Alligator

 

 
<divre></divre> Outlinks: 2

 

 
<divre></divre> outlink: toUrl: http://en.wikipedia.org/wiki/Alligator

 

 
<divre></divre> anchor: the Wikipedia entry for Alligator

 

 
<divre></divre> outlink: toUrl: http://keaton/tinysite/B.html anchor: B

 

 
<divre></divre> Metadata: {Date=Tue, 25 Oct 2005 11:13:34 GMT,

 

 
<divre></divre> CharEncodingForConversion=windows-1252, Server=Apache-Coyote/1.1,

 

 
<divre></divre> Last-Modified=Tue, 25 Oct 2005 11:02:11 GMT, ETag=W/"1106-1130238131000",

 

 
<divre></divre> Content-Type=text/html, Connection=close, Content-Length=1106}

 

 
<divre></divre>  

 

 
<divre></divre> ParseText::

 

 
<divre></divre> 'A' is for Alligator Alligators live in freshwater environments such

 

 
<divre></divre> as ponds, marshes, rivers and swamps. Although alligators have heavy

 

 
<divre></divre> bodies and slow metabolisms, they are capable of short bursts of

 

 
<divre></divre> speed that can exceed 30 miles per hour. Alligators' main prey are

 

 
<divre></divre> smaller animals that they can kill and eat with a single bite.

 

 
<divre></divre> Alligators may kill larger prey by grabbing it and dragging it in

 

 
<divre></divre> the water to drown. Food items that can't be eaten in one bite are

 

 
<divre></divre> either allowed to rot or are rendered by biting and then spinning or

 

 
<divre></divre> convulsing wildly until bite size pieces are torn off.

 

 
(From the Wikipedia entry for Alligator .) B
 
 
 
 
可以看到结果中有多个数据块,但是不要弄错,这些数据块都是属于一个网页实
体的,那就是A网页。只不过这些数据块属于不同的种类,是不同的阶段Crawler
所得到的A网页的数据。数据总共是三种:fetch data、raw content和pared content。
Fetch data被放置于FetcherOutput标识段之内,这些data是Crawler在“产生/抓取/更
新”循环的更新阶段为了更新WebDB写入WebDB中的关于A网页的数据。
 
 
 
 
Raw content被放置于Content标识段之内,是Fetcher从网络上抓取的网页的原始文
本数据,包括了完整的网页头数据和网页体。默认的是通过http协议插件进行下
载此数据。这些数据当你设置nutch拥有网页快照能力的时候被保存。
 
 
 
 
最后,Raw content被解析模块进行解析生成parsed content,解析模块在Nutch中是
以插件的形式进行实现的,根据下载网页的格式决定利用哪个插件进行解析。
Parsed content被放置于ParseData和ParseText标识段之内,它被用于建立segment的
索引。
 
 
 
 
Index
 
 
 
 
我们利用Luke工具来进行Nutch索引的分析。Luke可以查看索引中的单个索引项,
也可以进行关键字查询。下面图3即是本次实验中nutch建立的索引,这些索引存
在于index目录之下。
 
 
 
 
 
 
 
 
图3 利用Luke查看Nutch的index
 
 
 
 
上篇文章说过最终的索引是通过对segments的索引进行合并和除去重复建立的,
所以你可以利用Luke来查看最后一个segment的索引你会发现,索引中并没有
C-dup网页,因为其内容与C网页重复已经在索引建立的过程中被移除。于是,
最终的索引中也只有三个索引项,分别对应的是网页A、B和C。
 
 
 
 
图3中显示的是关于网页A的所有索引fields,这些fields的含义很清楚,我们主要
对boost进行一下解释。Boost field的值是通过链接到此网页的链接数目来进行计
算的,链接到此网页的链接越多,此值越大。但是两者并不是成线性关系的,
而是通过对数计算而得,计算公式为ln(e+n),其中参数n即是链接数目。例如此
例中链接到网页A的只有一个网页B,所以boost的值计算为ln(e+1) = 1.3132616…
 
 
 
 
但是本质上,boost的值并不是仅仅依赖于链接数目,它还与链接到本网页的母
网页的分数有关。我们分析过WebDB和segment,里面存储了每个网页的得分,
在boost的计算中,本质上是需要参考这些母网页的自身分数的。但是因为局域
网爬虫操作中默认取消了所有网页评分的操作,于是所有网页的分数被认定为1.0,
所以在boost的计算中,实际上只单独考虑了链接的数目。
 
 
 
 
那么,什么时候网页的评分将不会为1.0呢?Nutch利用了LinkAnalysisTool操作来
对网页进行评分,此操作利用的是google的pagerank算法。Pagerank算法在这里
不进行详细叙述了,有兴趣的朋友可以进行研究。我们知道,pagerank算法是
一个递归的过程,其算法复杂度和花费的时间较为巨大,所以在进行局域网
爬行的时候Nutch自动省略了这一操作,幸运的是,局域网中网页的检索在没有
这一步的情况下效果是理想的。但是对于整个网络的爬行以及检索,
LinkAnalysisTool操作是至关重要的,它也是google获得巨大成功的重要原因。
 
 
 
 
备注
本文章为原创,如要转载请务必注明本文章出处http://blog.donews.com/52se
分享到:
评论

相关推荐

    nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据

    在“csdns”这个文件中,可能是Nutch爬虫抓取的一个特定网站或主题的数据。文件可能包含该网站的URL列表、抓取的网页内容、元数据等。通过分析这些数据,可以研究Nutch的抓取效果,比如抓取覆盖率、重复率、错误率等...

    nutch爬虫资料

    本资料包围绕Nutch爬虫,提供了相关的参考书籍和源代码分析,旨在帮助用户深入理解Nutch的工作原理和实践应用。 首先,Nutch爬虫的基础知识包括它的架构和工作流程。Nutch分为多个阶段,包括种子URL的生成、网页...

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

    本文将详细分析Nutch爬虫的工作流程和涉及的主要文件格式。 首先,Nutch爬虫(Crawler)的核心任务是抓取互联网上的网页,并构建一个链接结构的数据库,称为WebDB。WebDB包含两类实体:Page和Link。Page实体记录了...

    大学毕设论文--nutch爬虫系统分析设计论文.doc

    本文将对Nutch爬虫系统进行详细的分析和设计,介绍Nutch的体系结构、抓取部分、配置文件分析等方面的知识点。 一、Nutch简介 Nutch是一个基于Java语言的开源爬虫系统,由Apache组织开发和维护。Nutch的主要特点是...

    nutch爬虫系统分析.doc

    抓取部分是Nutch爬虫系统的核心部分,负责抓取互联网上的网页数据。抓取部分包括以下几个步骤: 1. inject:将抓取的URL注入到抓取队列中。 2. generate:生成抓取的URL列表。 3. fetch:抓取互联网上的网页数据。 ...

    nutch爬虫+java+eclipse

    总结,Nutch爬虫结合Java和Eclipse,为开发者提供了一个功能强大的网络数据抓取解决方案。通过Java的网络和解析库,可以实现高效、灵活的爬虫开发。在Eclipse中,我们不仅可以便捷地构建和运行Nutch项目,还能利用其...

    毕业论文-nutch爬虫系统分析.doc

    Nutch 是一个开源的Web爬虫系统,专为大规模网络数据收集而设计,它被广泛应用于搜索引擎、学术研究以及大数据分析等领域。这篇毕业论文详细分析了Nutch爬虫系统的各个方面,旨在深入理解其工作原理和架构。 1. ...

    nutch爬虫系统分析设计论文.doc

    Nutch 爬虫系统分析设计论文 Nutch 是一个开源的网页爬虫系统,主要用于从互联网上爬取大量的网页数据,并对其进行处理和存储。该系统的设计目的是为了满足高效、可扩展和可靠的网页爬取需求。 Nutch 体系结构 ...

    学习lucene和nutch爬虫代码

    对于初学者来说,"学习lucene和nutch爬虫代码"这个资料包应该包含了Lucene的基本代码示例和Nutch的爬虫代码。通过阅读和理解这些代码,你可以深入了解Lucene如何建立索引、执行搜索,以及Nutch如何抓取和处理网页。...

    Nutch1.7二次开发培训讲义 之 腾讯微博抓取分析

    Nutch 是一个开源的网络爬虫项目,它提供了灵活的数据抓取能力,并支持二次开发定制功能。本篇培训讲义主要针对的是如何使用 Nutch 1.7 版本对腾讯微博进行抓取分析,特别强调了针对动态网页的抓取及自定义解析插件...

    提高nutch运行效率的原理与方法

    Nutch是Apache软件基金会开发的一款开源的Web爬虫系统,它用于抓取互联网上的网页并构建倒排索引,为搜索引擎提供数据基础。在实际应用中,由于Nutch的默认配置和工作流程可能存在效率问题,因此,理解其运行原理并...

    Apache Nutch网络爬虫 v1.19.zip

    v1.19 是该项目的一个稳定版本,提供了丰富的功能和改进,适用于研究、开发以及各种数据分析任务。在这个压缩包中,包含的是 Apache Nutch 的完整源代码,这对于学习、理解和定制网络爬虫系统非常有价值。 1. **...

    apache-nutch-1.13-src.zip_nutch_网络爬虫

    Apache Nutch 是一款开源的网络爬虫项目,其1.13版本的源代码提供了丰富的学习资源,适合对网络爬虫技术感...通过学习和实践 Nutch,你可以提升自己的数据抓取和处理能力,为大数据分析和搜索引擎开发打下坚实基础。

    nutch使用&Nutch;入门教程

    “Nutch使用.pdf”和“Nutch入门教程.pdf”这两份文档将详细介绍如何从零开始使用Nutch,包括环境搭建、配置、启动爬虫、监控爬虫状态、查看抓取结果和索引数据等。通过这些教程,你可以快速掌握Nutch的基本操作,并...

    Nutch程序运行环境配置

    Nutch是一个开源的Web爬虫项目,用于抓取互联网上的网页并建立索引,通常与Hadoop等大数据处理框架结合使用。在Windows环境下配置Nutch的运行环境,需要考虑以下几个关键知识点: 1. **开发环境配置**: - **JDK...

    nutch 爬到的CSDN数据 nutch crawl

    总的来说,"nutch 爬到的 CSDN 数据"是一个关于利用开源爬虫工具 Nutch 抓取并分析 CSDN 网站内容的过程,这个过程涉及到网络爬虫技术、数据抓取策略、数据分析等多个方面,具有广泛的应用前景和技术价值。...

    搜索引擎nutch配置

    Nutch可以与HBase、Cassandra等NoSQL数据库集成,用于存储大量抓取数据。此外,也可以与Apache Tika一起工作,提取网页中的元信息和内容。 12. **持续学习与更新** Nutch是一个活跃的开源项目,定期会有新功能和...

Global site tag (gtag.js) - Google Analytics