# 使用说明:在bin目录下建立 runbot.sh ,如果在window下执行的话,则使用 cygwin 来模拟使用
# bin/runbot.sh
# runbot script to run the Nutch bot for crawling and re-crawling.
# Usage: bin/runbot [safe]
# If executed in 'safe' mode, it doesn't delete the temporary
# directories generated during crawl. This might be helpful for
# analysis and recovery in case a crawl fails.
#
# Author: Susam Pal
depth=4
threads=8
adddays=5
topN=1500000 #Comment this statement if you don't want to set topN value
# Arguments for rm and mv
RMARGS="-rf"
MVARGS="--verbose"
# Parse arguments
if [ "$1" == "safe" ]
then
safe=yes
fi
if [-z "$NUTCH_HOME" ]
then
NUTCH_HOME=.
echo runbot: $0 could not find environment variable NUTCH_HOME
echo runbot: NUTCH_HOME=$NUTCH_HOME has been set by the script
else
echo runbot: $0 found environment variable NUTCH_HOME=$NUTCH_HOME
fi
NUTCH_HOME=/cygdrive/f/nutch
echo print nutch: $NUTCH_HOME
if [ -z "$CATALINA_HOME" ]
then
CATALINA_HOME=/cygdrive/e/tomcat
echo runbot: $0 could not find environment variable NUTCH_HOME
echo runbot: CATALINA_HOME=$CATALINA_HOME has been set by the script
else
echo runbot: $0 found environment variable CATALINA_HOME=$CATALINA_HOME
fi
if [ -n "$topN" ]
then
topN="-topN $topN"
else
topN=""
fi
steps=8
echo "----- Inject (Step 1 of $steps) -----"
$NUTCH_HOME/bin/nutch inject crawl/crawldb urls
echo "----- Generate, Fetch, Parse, Update (Step 2 of $steps) -----"
for((i=0; i < $depth; i++))
do
echo "--- Beginning crawl at depth `expr $i + 1` of $depth ---"
$NUTCH_HOME/bin/nutch generate crawl/crawldb crawl/segments $topN \
-adddays $adddays
if [ $? -ne 0 ]
then
echo "runbot: Stopping at depth $depth. No more URLs to fetch."
break
fi
segment=`ls -d crawl/segments/* | tail -1`
$NUTCH_HOME/bin/nutch fetch $segment -threads $threads
if [ $? -ne 0 ]
then
echo "runbot: fetch $segment at depth `expr $i + 1` failed."
echo "runbot: Deleting segment $segment."
rm $RMARGS $segment
continue
fi
$NUTCH_HOME/bin/nutch updatedb crawl/crawldb $segment
done
echo "----- Merge Segments (Step 3 of $steps) -----"
$NUTCH_HOME/bin/nutch mergesegs crawl/MERGEDsegments crawl/segments/*
if [ "$safe" != "yes" ]
then
rm $RMARGS crawl/segments
else
rm $RMARGS crawl/BACKUPsegments
mv $MVARGS crawl/segments crawl/BACKUPsegments
fi
mv $MVARGS crawl/MERGEDsegments crawl/segments
echo "----- Invert Links (Step 4 of $steps) -----"
$NUTCH_HOME/bin/nutch invertlinks crawl/linkdb crawl/segments/*
echo "----- Index (Step 5 of $steps) -----"
$NUTCH_HOME/bin/nutch index crawl/NEWindexes crawl/crawldb crawl/linkdb \
crawl/segments/*
echo "----- Dedup (Step 6 of $steps) -----"
$NUTCH_HOME/bin/nutch dedup crawl/NEWindexes
echo "----- Merge Indexes (Step 7 of $steps) -----"
$NUTCH_HOME/bin/nutch merge crawl/NEWindex crawl/NEWindexes
echo "----- Loading New Index (Step 8 of $steps) -----"
${CATALINA_HOME}/bin/shutdown.sh
if [ "$safe" != "yes" ]
then
rm $RMARGS crawl/NEWindexes
rm $RMARGS crawl/index
else
rm $RMARGS crawl/BACKUPindexes
rm $RMARGS crawl/BACKUPindex
mv $MVARGS crawl/NEWindexes crawl/BACKUPindexes
mv $MVARGS crawl/index crawl/BACKUPindex
fi
mv $MVARGS crawl/NEWindex crawl/index
${CATALINA_HOME}/bin/startup.sh
echo "runbot: FINISHED: Crawl completed!"
echo ""
//断电停止工作后,再执行这个。
// 刚开始我也不怎么喜欢shell这种方式的代码,不过幸好邻居是搞shell编程的,经它一分析,原来shell也是这么简单。
//来源:http://wiki.apache.org/nutch/Crawl
分享到:
相关推荐
Nutch 1.2 是一个开源的Web爬虫项目,基于Java开发,它主要用于抓取互联网上的网页并进行索引。这个项目是Apache Lucene的一部分,提供了完整的搜索引擎解决方案。Eclipse 是一个流行的Java集成开发环境(IDE),在...
### Nutch开源搜索引擎增量索引recrawl的终极解决办法 #### 知识点解析: **Nutch与Hadoop集成下的recrawl策略** Nutch是一款基于Java的开源搜索引擎框架,能够爬取网页、提取数据并建立索引。它利用Apache ...
Nutch 1.2 是一个开源的网络爬虫项目,基于 Java 编写,用于抓取互联网上的网页并建立索引。这个项目是 Apache Software Foundation 的一部分,它为大规模的数据采集提供了强大的工具。Nutch 1.2 版本相对于早期版本...
- **改进的爬取策略**:Nutch 1.4 在URL调度策略上有所优化,提高了抓取效率和覆盖率。 - **更好的性能**:对内存管理和爬取速度进行了优化,降低了资源消耗。 - **更完善的插件体系**:支持更多的第三方插件,如...
`NutchConfiguration`类位于`org.apache.nutch.util`包中,其中的`createCrawlConfiguration()`方法会调用`addNutchResources()`添加配置资源。具体而言,会加载`nutch-default.xml`、`crawl-tool.xml`(可选)和`...
1. **更好的爬取策略**:Nutch 1.2优化了URL的抓取优先级算法,使得重要的网页能更快被发现和抓取。 2. **性能提升**:通过优化代码和更新依赖库,提高了爬取和索引的速度。 3. **增强的可配置性**:增加了更多的...
### MyEclipse 8.5 导入 Nutch 1.2 源码的知识点详解 #### 一、背景介绍 Nutch 是一个高度可扩展且开放源代码的网络爬虫项目,由 Apache 软件基金会维护。它不仅能够抓取网页,还能进行全文检索,通常运行在 Linux...
4. **URL 管理**:Nutch 使用 URL 的数据库来跟踪已抓取、待抓取和已排除的网页,通过种子文件启动爬虫。 5. **配置文件**:如 `conf/nutch-default.xml` 和 `conf/nutch-site.xml`,分别包含 Nutch 的默认配置和...
1.1什么是nutch..1 1.2研究nutch的原因...1 1.3 nutch的目标..1 1.4 nutch VS lucene.....2 2. nutch的安装与配置.....3 2.1 JDK的安装与配置.3 2.2 nutch的安装与配置........5 2.3 tomcat的安装与配置......5 3. ...
1.1什么是nutch..1 1.2研究nutch的原因...1 1.3 nutch的目标..1 1.4 nutch VS lucene.....2 2. nutch的安装与配置.....3 2.1 JDK的安装与配置.3 2.2 nutch的安装与配置........5 2.3 tomcat的安装与配置........
Nutch是一款刚刚诞生的完整的开源搜索引擎系统,可以结合数据库进行索引,能快速构建所需系统。Nutch 是基于Lucene的,Lucene为 Nutch 提供了文本索引和搜索的API,所以它使用Lucene作为索引和检索的模块。Nutch的...
### Nutch开源搜索引擎增量索引recrawl的终极解决办法续 #### 一、背景与问题概述 在前一篇文章中,我们探讨了Nutch开源搜索引擎在进行增量索引更新(recrawl)时遇到的问题及其初步解决方案。然而,在实际操作...
nutch1.2测试文档
nutch官方简单案例,请版本是nutch-1.2.war
这个名为 "nutch_recrawl_mergecrawl.rar" 的压缩包包含两个关键组件:`recrawl` 和 `mergecrawl`,它们分别针对索引更新和多网站查询的合并。 **1. Nutch 简介** Nutch 是由 Apache 软件基金会维护的一个项目,其...
Apache Nutch 是一个开源的网络爬虫项目,用于抓取互联网上的网页并建立索引,以便进行全文搜索。Nutch 1.3 是该项目的一个稳定版本,提供了许多关键功能和改进。这个源码包 "apache-nutch-1.3-src.tar.gz" 和 ...
### Windows下cygwin+MyEclipse 8.5+Nutch1.2+Tomcat 6.0 本文旨在详细介绍如何在Windows环境下搭建基于cygwin、MyEclipse 8.5、Nutch 1.2及Tomcat 6.0的开发环境,并对每个步骤进行深入解析。 #### 一、Cygwin的...
- **种子列表**:首先,你需要提供一个包含初始URL的种子列表,这些URL将被Nutch用来开始爬取。 - **抓取**:Nutch使用HTTP协议下载网页,同时记录每个URL的状态(如已抓取、待抓取等)。 - **解析**:抓取的HTML...
主要的源代码文件位于`src/java`目录下,按照包结构组织,例如`org.apache.nutch.crawl`、`org.apache.nutch.indexer`和`org.apache.nutch.parse`等。 2. **配置文件**:在`conf`目录下,有默认的Nutch配置文件,如...
**Nutch 网页爬取总结** **前言** Nutch 是一个开源的网络爬虫项目,由 Apache 基金会维护,主要用于构建大规模的搜索引擎。它提供了从互联网抓取网页、分析链接关系、生成倒排索引等一系列功能。Nutch 的设计目标...