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的深度是依据链接的。这样设计的爬虫容易控制。

 

你可能感兴趣的:(HTML,C,C++,C#,Tomcat)