一直搞不清楚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
- 浏览 4960
- 评论(2)
- 论坛回复 / 浏览 (2 / 6748)
- 查看更多
相关推荐
**Nutch 网页爬取总结** **前言** Nutch 是一个开源的网络爬虫项目,由 Apache 基金会维护,主要用于构建大规模的搜索引擎。它提供了从互联网抓取网页、分析链接关系、生成倒排索引等一系列功能。Nutch 的设计目标...
- `-depth`:设置爬行深度。 - `-topN`:在每个深度级别上抓取的页面数量。 **4.2 全网爬行** 全网爬行适合大规模的数据抓取,可能需要数周时间并使用多台机器。步骤包括: - **下载数据**:下载`...
使用`bin/nutch crawl urls -dir <output_dir> -depth <depth> -topN <num>`命令启动爬虫,其中`<output_dir>`指定爬行结果的存储目录,`<depth>`设定爬行深度,`<num>`控制每层深度的最大爬行页面数。 #### 五、...
- [-depth]:参数用于设定Nutch爬虫迭代的深度,默认值为5,表示爬虫会访问每个页面上的链接,达到预设的层数。 - [-topN]:参数用于限制每次迭代中的记录数,默认值为Integer.MAX_VALUE,代表不做限制。 此外,...
nutcher 是 Apache Nutch 的中文教程,在github上托管。nutch社区目前缺少教程和文档,而且教程对应版本号较为落后。nutcher致力于为nutch提供一个较新的中文教程和文档,供开发者学习。 github地址: ...
Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。 目 录 1. nutch简介...1 1.1什么是nutch..1 1.2研究nutch的原因...1 1.3 nutch的目标..1 1.4 nutch VS lucene.....2 2....
爬行过程中,Nutch 使用 `Fetcher` 类进行页面抓取,`FetcherThread` 多线程运行,提高抓取效率。`Fetcher` 根据 URL 的协议类型调用相应的 `Protocol` 插件,如 HTTP 或 FTP。抓取到的页面内容由 `Parser` 分析为...
Nutch 的爬行过程涉及多个步骤,包括使用入口地址、URL 正则表达式和搜索深度限制。Hadoop 的使用使得 Nutch 具备了分布式处理能力。关键类包括: - **Fetcher**:通过多线程运行 FetcherThread,调用适当的 ...
并在“Arguments”选项卡中设置程序参数,如`Program arguments: urls-dir crawl-depth 3 topN 50`,以及虚拟机参数`VM arguments: -Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log`,这些参数分别用于指定URL...
nutch应用,nutch中文分词,nutch中文乱码
`-depth 3`表示抓取深度为3层;`-threads 10`表示并发线程数为10;`-topN 50`表示每页返回的结果数量为50。 #### 三、配置Tomcat进行网页内容搜索 ##### 1. 安装Tomcat - **下载并安装Tomcat**: - 选择适合系统的...
- `-depth 2`表示从目标网址开始向下抓取两层深度。 - `-threads 4`指定了并发的线程数为4。 - `-topN 100`表示限制每次迭代抓取的前100个链接。 - `logs/logs1.log`表示将输出信息重定向到此日志文件。 #### ...
例如,`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 的编码问题。 - **解决方案**...
- `-depth`: 设置抓取的页面深度。 - `-topN`: 设置每层抓取的 URL 数量上限。 - `-threads`: 设置抓取线程的数量。 #### 五、总结 通过上述步骤,我们可以完成 Nutch 在 Windows 平台上的安装与配置。Nutch 的...
( Nutch,第1部分:爬行(译文) ( Nutch,第1部分:爬行(译文)
Nutch中文分词插件的编写与配置,由于Internet的迅猛发展,使得用户查找信息犹如大海捞针,而搜索引擎则能帮用户很好的解决这个问题。 Nutch是用java语言开发的,基于Lucene的完整的网络搜索引擎,并采用插件机制进行...
为达成这一目标,Nutch需要能够每月爬取数十亿网页,维护索引,执行每秒上千次的搜索请求,并提供高质量的搜索结果,同时还要保证最低的运行成本。 与Lucene的区别:简单来说,Lucene是一个用于实现全文检索的软件...
bin/nutch crawl urls -dir crawl -depth 2 -topN 10 ``` 这将执行两次抓取(默认深度为1),并返回前10个结果。 **五、集成Hadoop** 如果你希望利用Hadoop分布式计算能力,需进行以下步骤: 1. 配置Nutch的`...