`
- 浏览:
51047 次
- 性别:
- 来自:
福建
-
为了研究怎么解决recrawl的问题,今天仔细观察了一下nutch crawl的每一步具体发生了什么。
==============准备工作======================
(Windows下需要cygwin)
从SVN check out代码;
cd到crawler目录;
==============inject==========================
$ bin/nutch inject crawl/crawldb urls
Injector: starting
Injector: crawlDb: crawl/crawldb
Injector: urlDir: urls
Injector: Converting injected urls to crawl db entries.
Injector: Merging injected urls into crawl db.
Injector: done
crawldb目录在这时生成。
查看里面的内容:
$ bin/nutch readdb crawl/crawldb -stats
CrawlDb statistics start: crawl/crawldb
Statistics for CrawlDb: crawl/crawldb
TOTAL urls: 1
retry 0: 1
min score: 1.0
avg score: 1.0
max score: 1.0
status 1 (db_unfetched): 1
CrawlDb statistics: done
===============generate=========================
$bin/nutch generate crawl/crawldb crawl/segments
$s1=`ls -d crawl/segments/2* | tail -1`
Generator: Selecting best-scoring urls due for fetch.
Generator: starting
Generator: segment: crawl/segments/20080112224520
Generator: filtering: true
Generator: jobtracker is 'local', generating exactly one partition.
Generator: Partitioning selected urls by host, for politeness.
Generator: done.
segments目录在这时生成。但里面只有一个crawl_generate目录:
$ bin/nutch readseg -list $1
NAME GENERATED FETCHER START FETCHER END
FETCHED PARSED
20080112224520 1 ? ? ? ?
crawldb的内容此时没变化,仍是1个unfetched url。
=================fetch==============================
$bin/nutch fetch $s1
Fetcher: starting
Fetcher: segment: crawl/segments/20080112224520
Fetcher: threads: 10
fetching http://www.complaints.com/directory/directory.htm
Fetcher: done
segments多了些其他子目录。
$ bin/nutch readseg -list $s1
NAME GENERATED FETCHER START FETCHER END
FETCHED PARSED
20080112224520 1 2008-01-12T22:52:00 2008-01-12T22:52:00
1 1
crawldb的内容此时没变化,仍是1个unfetched url。
================updatedb=============================
$ bin/nutch updatedb crawl/crawldb $s1
CrawlDb update: starting
CrawlDb update: db: crawl/crawldb
CrawlDb update: segments: [crawl/segments/20080112224520]
CrawlDb update: additions allowed: true
CrawlDb update: URL normalizing: false
CrawlDb update: URL filtering: false
CrawlDb update: Merging segment data into db.
CrawlDb update: done
这时候crawldb内容就变化了:
$ bin/nutch readdb crawl/crawldb -stats
CrawlDb statistics start: crawl/crawldb
Statistics for CrawlDb: crawl/crawldb
TOTAL urls: 97
retry 0: 97
min score: 0.01
avg score: 0.02
max score: 1.0
status 1 (db_unfetched): 96
status 2 (db_fetched): 1
CrawlDb statistics: done
==============invertlinks ==============================
$ bin/nutch invertlinks crawl/linkdb crawl/segments/*
LinkDb: starting
LinkDb: linkdb: crawl/linkdb
LinkDb: URL normalize: true
LinkDb: URL filter: true
LinkDb: adding segment: crawl/segments/20080112224520
LinkDb: done
linkdb目录在这时生成。
===============index====================================
$ bin/nutch index crawl/indexes crawl/crawldb crawl/linkdb crawl/segments/*
Indexer: starting
Indexer: linkdb: crawl/linkdb
Indexer: adding segment: crawl/segments/20080112224520
Indexing [http://www.complaints.com/directory/directory.htm] with analyzer
org
apache.nutch.analysis.NutchDocumentAnalyzer@ba4211 (null)
Optimizing index.
merging segments _ram_0 (1 docs) into _0 (1 docs)
Indexer: done
indexes目录在这时生成。
================测试crawl的结果==========================
$ bin/nutch org.apache.nutch.searcher.NutchBean complaints
Total hits: 1
0 20080112224520/http://www.complaints.com/directory/directory.htm
Complaints.com - Sitemap by date ?Complaints ...
参考资料:
【1】Nutch version 0.8.x tutorial
http://lucene.apache.org/nutch/tutorial8.html
【2】 Introduction to Nutch, Part 1: Crawling
http://today.java.net/lpt/a/255
出处:http://xruby.iteye.com/blog/258128
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本文将解析 Nutch-0.9 版本中的 `Crawl` 类,它是 Nutch 抓取流程的起点。 `Crawl` 类位于 `org.apache.nutch.crawl` 包中,它包含了启动 Nutch 抓取程序的主要逻辑。`main` 函数是整个程序的入口点,它接收命令行...
Nutch的工作流程是一个复杂但高效的过程,它通过一系列精心设计的步骤来完成对互联网内容的抓取、解析和索引。通过上述分析,我们可以看出每个步骤都至关重要,且相互之间紧密关联。从初始URL集合的构建到最终索引的...
本文将以Nutch 1.2版本为核心,重点解析Crawl类及其在整体流程中的关键地位。 Nutch的工作流程主要包括以下几个阶段:注入(Injector)、生成抓取URL(Generator)、网页抓取(Fetcher)、网页解析(ParseSegment)...
Nutch 还提供了命令行工具,如 `bin/nutch crawl`,用于启动爬虫流程。 **Nutch 入门教程** 《Nutch 入门教程.pdf》这本书籍或文档应该包含了 Nutch 的基础知识、安装配置、使用示例以及常见问题解答等内容。通过...
"nutch crawl"是指Nutch的爬取流程,它由一系列步骤组成,包括初始化、抓取、解析、过滤、索引等。Nutch提供的这个文件可能是一组预设的脚本或配置,指导用户如何执行完整的爬取流程。这包括设置爬取种子URL、定义...
Nutch 提供了从互联网抓取网页、解析内容、提取链接到存储索引的完整流程。Nutch 1.2 版本后,它开始使用 Ivy 进行依赖管理,方便构建和集成其他组件。 【Hadoop】 Hadoop 是一个分布式计算框架,用于处理和存储...
- **运行Nutch流程**:执行`bin/nutch crawl`命令,依次进行抓取、解析、索引等步骤。 - **使用Solr或Elasticsearch**:Nutch可以将索引数据导出到Solr或Elasticsearch,以实现更强大的搜索功能。 - **学习源码**...
你可以单独运行每个命令,或者通过`bin/crawl`脚本自动化整个过程。 六、Nutch与其他技术的集成 Nutch可以与Solr或Elasticsearch等搜索引擎集成,实现快速高效的搜索功能。此外,还可以与HBase等NoSQL数据库配合,...
2. **生成新的抓取URLs**:执行`bin/nutch generate crawldb segments_dir [-force] [-topNN] [-numFetchers numFetchers] [-adddays numDays] [-noFilter] [-noNorm] [-maxNumSegments num]`,此过程会基于已有的...
基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。 According to the implementation of Apache Nutch 1.8, we can't get dynamic ...
Nutch2.3.1是Apache Nutch的一个稳定版本,它是一个开源的网络爬虫框架,主要用于抓取、解析和索引互联网上的网页内容。在本文中,我们将深入探讨如何搭建Nutch2.3.1的运行环境,以便进行网页抓取和分析。 **一、...
为了更好地理解Nutch插件的开发过程,我们需要先了解几个关键的概念: 1. **Pluggable接口**:这是所有扩展点必须实现的一个通用接口,用于确定一个类是否能够作为插件集成到Nutch框架中。该接口定义了插件与Nutch...
`bin/nutch crawl`命令启动抓取流程,包括生成待抓取URL列表(`segments`),执行抓取任务,更新URL状态,并将新抓取的网页存储为段。 8. **解析与索引** Nutch内置了HTML解析器和Tika库,用于提取网页内容。索引...
5. **启动爬虫**:运行Nutch的`bin/nutch`脚本,执行如`crawl`命令开始爬取过程。 6. **监控和调试**:观察日志文件,跟踪爬虫的运行状态,如有需要,进行问题排查和性能优化。 通过学习和研究Nutch源码,开发者...
- 当执行`Crawl`类的`main`方法时,首先通过`NutchConfiguration.create()`创建一个配置对象。 - `NutchConfiguration.create()`方法内部,首先创建一个`Configuration`对象,这会加载`hadoop-default.xml`和`hadoop...
3. **运行Nutch**:执行Nutch的命令行工具,如`bin/nutch crawl`,启动爬虫流程。 4. **搜索关键词**:Nutch完成索引后,可以通过HTTP接口或API,使用IndexSearcher搜索含有特定关键词的文档。 四、实际应用示例 ...
特别地,Nutch中的Crawl和Fetch阶段展示了如何管理URL队列,以及如何决定何时重新抓取网页。 在学习Lucene和Nutch的源码时,你会遇到以下几个关键概念: 1. **分词**:Lucene使用Analyzer对输入文本进行分词,不同...
6. 执行Nutch的抓取命令,如`bin/nutch crawl`,根据命令提示进行Web抓取操作。 Nutch的抓取过程通常包括种子URL设置、爬网、解析HTML、提取链接、存储和索引数据等步骤。通过配置Nutch的配置文件,用户可以定制...
7. **运行Nutch**: 执行爬虫任务,如`bin/nutch crawl`命令,进行抓取、解析、索引和搜索操作。 **光盘使用说明** “光盘使用说明.DOC”文件可能是针对光盘中提供的资源如何与Lucene和Nutch结合使用的指南。它可能...
主要的源代码文件位于`src/java`目录下,按照包结构组织,例如`org.apache.nutch.crawl`、`org.apache.nutch.indexer`和`org.apache.nutch.parse`等。 2. **配置文件**:在`conf`目录下,有默认的Nutch配置文件,如...