一直搞不清楚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代码
- nutch crawl urls -dir c:\Test -threads 5 -depth 1
先爬行一层,如果是以文件夹为深度,那么第一层的4个文件都将爬到。让我看下结果:
cmd 代码
- F:\code\nutch\bin>nutch readdb c:\Test\db -dumppageurl
- 061127 150112 parsing jar:file:/F:/code/nutch/nutch.jar!/nutch-default.xml
- 061127 150112 parsing jar:file:/F:/code/nutch/nutch.jar!/nutch-site.xml
- 061127 150112 No FS indicated, using default:local
- org.apache.nutch.db.WebDBReader@13f5d07
-
- Page 1: Version: 4
- URL: http:
- ID: 59ba405710e0b0a631562a040e30865c
- Next fetch: Wed Dec 27 14:55:52 CST 2006
- Retries since fetch: 0
- Retry interval: 30 days
- Num outlinks: 2
- Score: 1.0
- NextScore: 1.0
-
-
- Page 2: Version: 4
- URL: http:
- ID: 2c6dadf23768abaca03c8f7135b99436
- Next fetch: Mon Nov 27 14:55:52 CST 2006
- Retries since fetch: 0
- Retry interval: 30 days
- Num outlinks: 0
- Score: 1.0
- NextScore: 1.0
-
-
- Page 3: Version: 4
- URL: http:
- ID: a588737b7cd966929644a731445dffeb
- Next fetch: Mon Nov 27 14:55:52 CST 2006
- Retries since fetch: 0
- Retry interval: 30 days
- Num outlinks: 0
- Score: 1.0
- NextScore: 1.0
事实是只有三个网页被抓到了:index.html,1.html,a.html。b和c都没有抓进来。可以说nutch爬行深度是依据网页上的链接的,也就是说nutch把爬行的第一个页面上的链接当作第一层,依次类推第一层页面上的链接是第二层。还可以看三个数据的Num outlinks。index的有两个,1和a明明设了链接的值却为零。可见nutch爬虫在扫描页面链接的时候就把设定层外的链接给丢弃了。
把index中1的链接改成2的链接更可以验证nutch的深度是依据链接的。这样设计的爬虫容易控制。
分享到:
- 2006-11-27 15:18
- 浏览 4955
- 评论(2)
- 论坛回复 / 浏览 (2 / 6744)
- 查看更多
相关推荐
- `-depth`:设置爬行深度。 - `-topN`:在每个深度级别上抓取的页面数量。 **4.2 全网爬行** 全网爬行适合大规模的数据抓取,可能需要数周时间并使用多台机器。步骤包括: - **下载数据**:下载`...
使用`bin/nutch crawl urls -dir <output_dir> -depth <depth> -topN <num>`命令启动爬虫,其中`<output_dir>`指定爬行结果的存储目录,`<depth>`设定爬行深度,`<num>`控制每层深度的最大爬行页面数。 #### 五、...
例如,`bin/nutch crawl urls -dir crawl -depth 3 -topN 50` 命令会从 `urls` 文件中提取种子URL,开始爬行,深度为3,返回前50个结果。`-threads 4` 参数设置并发线程数为4,这样可以提高抓取速度。 **抓取结果**...
- `-topN`: 每层深度上的最大爬行页面数。 - **常见问题解决**: - **异常**: 若遇到 “Exception in thread "main" java.io.IOException: Job failed!” 错误,通常是因为 Cygwin 的编码问题。 - **解决方案**...
在CygWin终端中,进入Nutch的解压路径,使用`bin/nutch crawl`命令开始爬行,例如`bin/nutch crawl urls -dir crawl -depth 3 -threads 20 -topN 50 >& crawl.log`,这里设置了爬行深度为3,线程数为20,每次抓取的...
Nutch支持两种爬行模式:企业内部网爬行和整个互联网爬行,后者通过更底层的命令(如inject、generate、fetch和updatedb)提供更强的控制能力。 #### 安装与配置步骤 **1. Java安装及配置** - 首先,从官方源下载...