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

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

阅读更多
为了更深入地对Nutch爬虫进行了解,我们需要运行一个实际的抓取过程并对这个过程中的细节进行记录,对抓取生成的结果文件进行内容分析。首先你需要下载Nutch程序并搭建起可以令其运行的平台,这在网上都有详细的说明资料,我就不赘述了。我们需要做的第一步就是建立起一个实验用的Web站点,这个站点只包含了四个网页。图1描述了这四个网页之间的链接关系,并且C网页和C-dup网页的网页内容是相同的。

 

图1 实验站点结构图

 

我们首先需要设置种子URL,我们设置A网页为爬虫起始抓取网页。命令如下:
echo 'http://keaton/tinysite/A.html' > urls

 

另外我们需要限制Crawler只抓取这个实验站点的网页,Nutch爬虫使用一个Filter来识别URL是否需要抓取。我们可以通过对conf/crawl-urlfilter.txt文件的修改来实现这个Filter,将文件中的

 

+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
内容修改为
+^http://keaton/

 

接下来,我们执行下面的命令行来运行Crawler:
bin/nutch crawl urls -dir crawl-tinysite -depth 3 >& crawl.log

 

在这个爬行命令中,我们设置抓取结果存储于crawl-tinysite文件夹中,抓取日志为crawl.log,另外限定了抓取深度为3,也就是告诉Crawler需要执行3次“产生/抓取/更新”循环就可以抓取完毕了。由于实验站点的简陋,深度为3就可以了,但是在实际运行时需要根据实际情况来进行设置。

 

下面就让我们通过对抓取产生文件的内容分析来进一步的了解Crawler的工作吧。
首先我们来看一下抓取过程中产生的所有文件有哪些,打开crawl-tinysite文件夹,里面有三个子目录,详细如图2所示:
图2 爬虫运行完毕所生成文件

 

Nutch自身带了很多查看结果文件的工具,我们利用它们来进行文件内容展示。

 

WebDB

 

首先我们需要看一下WebDB中的网页数目和链接数目,以确定站点爬行情况,执行下面的命令行:

 

bin/nutch readdb crawl-tinysite/db -stats
结果为:
Number of pages: 4
Number of links: 4

 

正如所料,其中包括四个网页(A,B,C,C-dup)和四个链接。因为WebDB只能去除重复URL,所以其中仍然含有C-dup网页,但是A网页却并没有被抓取两次。接下来,看一下WebDB中的网页实体和链接实体的具体存储内容,执行命令:

 

bin/nutch readdb crawl-tinysite/db -dumppageurl
生成结果:
Page 1: Version: 4
URL: http://keaton/tinysite/A.html
ID: fb8b9f0792e449cda72a9670b4ce833a
Next fetch: Thu Nov 24 11:13:35 GMT 2005
Retries since fetch: 0
Retry interval: 30 days
Num outlinks: 1
Score: 1.0
NextScore: 1.0
 
 
Page 2: Version: 4
URL: http://keaton/tinysite/B.html
ID: 404db2bd139307b0e1b696d3a1a772b4
Next fetch: Thu Nov 24 11:13:37 GMT 2005
Retries since fetch: 0
Retry interval: 30 days
Num outlinks: 3
Score: 1.0
NextScore: 1.0
 
 
Page 3: Version: 4
URL: http://keaton/tinysite/C-duplicate.html
ID: be7e0a5c7ad9d98dd3a518838afd5276
Next fetch: Thu Nov 24 11:13:39 GMT 2005
Retries since fetch: 0
Retry interval: 30 days
Num outlinks: 0
Score: 1.0
NextScore: 1.0
 
 
Page 4: Version: 4
URL: http://keaton/tinysite/C.html
ID: be7e0a5c7ad9d98dd3a518838afd5276
Next fetch: Thu Nov 24 11:13:40 GMT 2005
Retries since fetch: 0
Retry interval: 30 days
Num outlinks: 0
Score: 1.0
NextScore: 1.0

 

可以看出每一块内容是一个网页实体的信息,ID代表的是网页内容的MD5摘要,所以网页C和网页C-dup拥有一样的ID,另外还有其它的信息例如重新抓取预定时间和网页评分等。下面看看链接,执行命令:

 

bin/nutch readdb crawl-tinysite/db -dumplinks
生成结果:
from http://keaton/tinysite/B.html
 to http://keaton/tinysite/A.html
 to http://keaton/tinysite/C-duplicate.html
 to http://keaton/tinysite/C.html
 
from http://keaton/tinysite/A.html
 to http://keaton/tinysite/B.html

 

当抓取网页过多时,查看命令还可以通过URL或者MD5 hash单独查看单个网页实体,例如命令:

 

bin/nutch readdb crawl-tinysite/db -linkurl http://keaton/tinysite/B.html
结果:
Found 1 links.
Link 0: Version: 5
ID: fb8b9f0792e449cda72a9670b4ce833a
DomainID: 3625484895915226548
URL: http://keaton/tinysite/B.html
AnchorText: B
targetHasOutlink: true

 

看以看出得到的是单个的网页A。

 

未完待续,请继续关注Nutch爬虫实验运行及抓取数据分析(二)》

 

备注
本文章为原创,如要转载请务必注明本文章出处http://blog.donews.com/52se
分享到:
评论

相关推荐

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

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

    nutch爬虫资料

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

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

    首先,Nutch爬虫(Crawler)的核心任务是抓取互联网上的网页,并构建一个链接结构的数据库,称为WebDB。WebDB包含两类实体:Page和Link。Page实体记录了网页的基本信息,如URL、内容的MD5摘要、抓取时间以及网页的...

    nutch爬虫系统分析.doc

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

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

    Nutch爬虫系统是当前最流行的开源爬虫系统之一,广泛应用于搜索引擎、数据挖掘、文本分析等领域。本文将对Nutch爬虫系统进行详细的分析和设计,介绍Nutch的体系结构、抓取部分、配置文件分析等方面的知识点。 一、...

    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如何抓取和处理网页。...

    Apache Nutch网络爬虫 v1.19.zip

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

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

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

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

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

    nutch使用&Nutch;入门教程

    Nutch是Apache软件基金会开发的一款开源的网络爬虫项目,主要用于收集、索引和搜索互联网上的数据。这个“Nutch使用&Nutch;入门教程”将带你深入理解Nutch的基本概念、工作流程以及如何实际操作它来执行网络爬取任务...

    Nutch程序运行环境配置

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

    nutch 爬到的CSDN数据 nutch crawl

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

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

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

    基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件.zip

    【标题】"基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件.zip" 提供了一个深入的爬虫项目实例,旨在解决AJAX动态网页内容的抓取问题。Apache Nutch是一个开源的网络爬虫框架,而Htmlunit是一个无头...

Global site tag (gtag.js) - Google Analytics