抓取的时候死机或者意外停止时很正常的事情
不过遇到这类问题不用担心,heritrix提供了一个方法,就是Based on a recovery
这个就是在原有的基础上继续抓取,可是他又一个缺点
就是每次抓取都是一个新的job统计起来确实很麻烦!!
原理大家也都知道,heirtrix把所有获取的链接都放入recover.gz这个文件,里面存储了不同的格式
"F+ 进入调度器里的URL,还待处理。如果恢复的话,会重新将该URL放入调度器
"Fd "
"Fe "从BDB数据库里排放URI,然后用于去抓取
"Ff " 失败了的url
"Fr "重新调度的URL,在日志里申明它
"Fs " 已经成功的url
恩,每次启动的时候 就会加载gz到处理链,
恩,贴一段代码吧,Based on a recovery ,却让他在本job继续抓取的代码
public class HeritrixStart extends Thread{
private HeritrixStart() {
}
private static HeritrixStart instance = new HeritrixStart();
public static HeritrixStart getInstance() {
return instance;
}
private static CrawlController controller = null;
private static CrawlStatusListener listener = null;
/**
* 控制类路径
*/
public static void getController() {
if (controller == null) {
String crawlUrl = "F:/searcher/heritrix/jobs/default-20100311114044312/order.xml";
// CrawlStatusListener listener = null;
File file = new File(crawlUrl);
XMLSettingsHandler handler;
try {
handler = new XMLSettingsHandler(file);
handler.initialize();
controller = new CrawlController();
controller.initialize(handler);
} catch (InvalidAttributeValueException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InitializationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 启动爬虫
*/
public static void Start() {
getController();
if (listener != null) {
controller.addCrawlStatusListener(listener);
}
controller.requestCrawlStart();
while (true) {
if (controller.isRunning() == false) {
break;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
controller.requestCrawlStop();
}
/**
* 关闭爬虫
*/
public static void Stop() {
controller.requestCrawlStop();
}
/**
* 多线程启动
*/
public void run() {
Start();
}
public static void main(String[] args) {
Start();
// Stop();
}
}
恩,启动的话,最后把controller对象放入application,这样就可以很方便的用界面启动,暂停,继续爬虫了
分享到:
相关推荐
这将使Heritrix抓取的页面以镜像形式保存在本地目录,而非生成ARC存档文件。 - 设置属性:在`Settings`页面,有许多预设组件的值可供调整。每个属性旁边都有问号图标,点击后可查看详细解释。 Heritrix的扩展性...
Heritrix是一款开源的网络爬虫工具,由Internet Archive开发,用于抓取互联网上的网页和其他资源。这款工具因其强大的自定义性和灵活性而受到广大开发者和数据分析师的喜爱。在Windows环境下运行Heritrix,需要了解...
Heritrix是一款开源的网页爬虫工具,由互联网档案馆(Internet Archive)开发,主要用于大规模地从互联网上抓取和存档网页...通过以上步骤,Heritrix可以在Windows系统上稳定运行,实现高效的信息采集和网页抓取任务。
接下来是"Heritrix使用的初步总结 - 企业应用 - Java - ITeye论坛.mht",这个文件很可能是某个开发者在ITeye论坛上分享的Heritrix使用心得。ITeye论坛是一个中国程序员交流的平台,这类帖子通常包含了实践中的技巧、...
Heritrix 支持各种复杂的抓取策略和规则,如深度优先、广度优先,以及各种过滤器和钩子,能够有效地抓取互联网上的资源。它能够处理大规模的网页抓取任务,并支持对抓取内容的归档管理。 综合Lucene和Heritrix,...
《Heritrix抓取指南》 Heritrix是一款强大的网络爬虫工具,广泛应用于数据采集和分析。本指南将详细介绍如何利用Heritrix抓取淘宝商城大家电分类下的空调商品信息。 首先,确定我们的目标:抓取淘宝商城空调商品...
3. **lib**:存放jar包,这是Heritrix运行的基础,包括了Heritrix自身的类库和其他依赖的第三方库,如Apache Commons、log4j等。 4. **src**:源代码目录,虽然用户可能不会直接修改,但有助于理解Heritrix的内部...
Heritrix是一个开源的互联网爬虫工具,由Internet Archive开发并维护,用于抓取和保存网页数据。在Eclipse这样的集成开发环境中配置Heritrix源文件,可以方便开发者进行定制化开发、调试和理解Heritrix的工作原理。...
Heritrix 3.1.0 是一个强大的网络爬虫工具,主要用于抓取和存档互联网上的网页。这个最新版本的jar包包含了Heritrix的核心功能,为用户提供了一个高效的网页抓取框架。Heritrix的设计理念是模块化和可配置性,使得它...
Heritrix 支持分布式部署模式,可以在多台机器上并行执行抓取任务,大大提高了抓取速度和效率。 #### 二十八、Heritrix 3.x API 指南 Heritrix 提供了一套丰富的 API 接口,用户可以利用这些接口开发定制化的应用...
1. **爬虫基础**:Heritrix是一个Web爬虫,其主要功能是自动遍历互联网上的网页,按照预设的规则抓取内容。它通过模拟浏览器发送HTTP请求,接收服务器响应,并处理返回的数据。 2. **工作流程**:Heritrix的工作...
Heritrix是一个强大的Java开发的开源网络爬虫,主要用于从互联网上抓取各种资源。它由www.archive.org提供,以其高度的可扩展性而著称,允许开发者自定义抓取逻辑,通过扩展其内置组件来适应不同的抓取需求。本文将...
Heritrix是一款强大的开源网络爬虫工具,由互联网档案馆(Internet Archive)开发,主要用于抓取和保存网页内容。Heritrix 1.14.4是该软件的一个较早版本,但依然具有广泛的适用性,尤其对于学习和研究网络爬虫技术...
Heritrix 1.14.2 是一个开源的网络爬虫工具,它主要用于抓取互联网上的网页和其他在线资源。这个版本的Heritrix在2007年左右发布,虽然较旧,但它仍然是理解网络爬虫技术的一个重要参考。 Heritrix是一个由Internet...
理解这些文件的结构和作用是配置Heritrix的基础。 3. **作业配置** (`job.xml`): 这是Heritrix的核心配置文件,定义了爬虫的目标、策略、规则等。你需要指定起始URLs、抓取深度、爬取速度、是否遵循robots.txt协议...
在部署和运行Heritrix时,你可能需要配置运行环境(如JDK),设定合理的抓取策略,编写或调整配置文件,以及监控和调试爬虫的运行状态。 总之,Heritrix是一个强大且灵活的网络爬虫框架,通过深入学习和实践,你...
Heritrix是一款开源的网络...无论是研究人员、数据分析师还是开发者,都可以通过掌握Heritrix来高效地获取和处理互联网上的信息。在使用过程中,应密切关注官方文档、社区论坛和更新,以便获取最新的信息和技术支持。