nutch爬行中的depth(层数,深度?)

一直搞不清楚nutch中的depth是什么意思,就照着字面意思理解,认为是指html文件所在文件夹的相对于网站的深度。今天做了个小实验,证明并不是这样,下面来看看

先在Tomcat里面建一个示例网站Test,网站根目录下建四个网页index.html, a.thml, b.html, c.html.建一个文件夹1,内有1.html,在文件夹1中建文件夹2,建2.html。它们的链接关系:index.html中有a.html和1.html的链接,a.html中有b和c的链接,1.html中有2.html的链接。这个示例网站是按我原来的意思建的:第一层有四个文件,且包含了蜘蛛能访问到的链接,第二层有一个文件1.html,第三层为2.html。这是一个以文件夹为深度的例子。

启动nutch的爬虫爬行网站(配置可以网上查,很多)。

cmd代码
  1. nutch crawl  urls -dir c:\Test -threads 5 -depth 1  

先爬行一层,如果是以文件夹为深度,那么第一层的4个文件都将爬到。让我看下结果:

cmd 代码
  1. F:\code\nutch\bin>nutch readdb  c:\Test\db -dumppageurl   
  2. 061127 150112 parsing jar:file:/F:/code/nutch/nutch.jar!/nutch-default.xml   
  3. 061127 150112 parsing jar:file:/F:/code/nutch/nutch.jar!/nutch-site.xml   
  4. 061127 150112 No FS indicated, using default:local   
  5. org.apache.nutch.db.WebDBReader@13f5d07   
  6.   
  7. Page 1: Version: 4   
  8. URL: http://localhost:8080/Test/   
  9. ID: 59ba405710e0b0a631562a040e30865c   
  10. Next fetch: Wed Dec 27 14:55:52 CST 2006   
  11. Retries since fetch: 0   
  12. Retry interval: 30 days   
  13. Num outlinks: 2   
  14. Score: 1.0   
  15. NextScore: 1.0   
  16.   
  17.   
  18. Page 2: Version: 4   
  19. URL: http://localhost:8080/Test/1/1.html   
  20. ID: 2c6dadf23768abaca03c8f7135b99436   
  21. Next fetch: Mon Nov 27 14:55:52 CST 2006   
  22. Retries since fetch: 0   
  23. Retry interval: 30 days   
  24. Num outlinks: 0   
  25. Score: 1.0   
  26. NextScore: 1.0   
  27.   
  28.   
  29. Page 3: Version: 4   
  30. URL: http://localhost:8080/Test/a.html   
  31. ID: a588737b7cd966929644a731445dffeb   
  32. Next fetch: Mon Nov 27 14:55:52 CST 2006   
  33. Retries since fetch: 0   
  34. Retry interval: 30 days   
  35. Num outlinks: 0   
  36. Score: 1.0   
  37. NextScore: 1.0  

事实是只有三个网页被抓到了:index.html,1.html,a.html。b和c都没有抓进来。可以说nutch爬行深度是依据网页上的链接的,也就是说nutch把爬行的第一个页面上的链接当作第一层,依次类推第一层页面上的链接是第二层。还可以看三个数据的Num outlinks。index的有两个,1和a明明设了链接的值却为零。可见nutch爬虫在扫描页面链接的时候就把设定层外的链接给丢弃了。

把index中1的链接改成2的链接更可以验证nutch的深度是依据链接的。这样设计的爬虫容易控制。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<p>Nutch的创始人是Doug Cutting,他同时也是Lucene、Hadoop和Avro开源项目的创始人。</p><p>Nutch诞生于2002年8月,是Apache旗下的一个用Java实现的开源搜索引擎项目,自Nutch1.2版本之后,Nutch已经从搜索引擎演化为网络爬虫,接着Nutch进一步演化为两大分支版本:1.X和2.X,这两大分支最大的区别在于2.X对底层的数据存储进行了抽象以支持各种底层存储技术。</p><p>在Nutch的进化过程,产生了Hadoop、Tika、Gora和Crawler Commons四个Java开源项目。如今这四个项目都发展迅速,极其火爆,尤其是Hadoop,其已成为大规模数据处理的事实上的标准。Tika使用多种现有的开源内容解析项目来实现从多种格式的文件提取元数据和结构化文本,Gora支持把大数据持久化到多种存储实现,Crawler Commons是一个通用的网络爬虫组件。</p><p>大数据这个术语最早的引用可追溯到Nutch。当时,大数据用来描述为更新网络搜索索引需要同时进行批量处理或分析的大量数据集。现在,大数据的含义已经被极大地发展了,业界将大数据的特性归纳为4个“V”。Volume数据体量巨大,Variety数据类型繁多,Value价值密度低,商业价值高,Velocity处理速度快。</p><p>Hadoop是大数据的核心技术之一,而Nutch集Hadoop之大成,是Hadoop的源头。学习Hadoop,没有数据怎么办?用Nutch抓!学了Hadoop的Map Reduce以及HDFS,没有实用案例怎么办?学习NutchNutch的很多代码是用Map Reduce和HDFS写的,哪里还能找到比Nutch更好的Hadoop应用案例呢?</p>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值