`
wangwei3
  • 浏览: 120339 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

heritrix在原有基础上抓取

阅读更多
抓取的时候死机或者意外停止时很正常的事情
不过遇到这类问题不用担心,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,这样就可以很方便的用界面启动,暂停,继续爬虫了
分享到:
评论
6 楼 zzzz3621 2011-12-17  
wangwei3 写道
zzzz3621 写道
:博主
Based on a recovery是根据recovery文件继续抓取,我也把里面的内容看了,就是有个疑惑。
recovery文件里存的是日志吧? 根据这个文件怎么才能做到原有基础上抓取?
因为本来我们自己建立一个job,设了种子的话,爬虫是抓下这个网页,解析出URL,去重后,把URL入队,就是这么个过程吧?
recovery文件里存的是日志,那么只有一些抓了和入队没还没抓的信息,那么要解析出新的URL是从什么地方出发呢?
然后他只是存了这些URL信息,是不是还是要重新获取网页的呀?


create on recover job,好像是这个。。。他会读取日志文件,重新生成去重库和把为抓取的种子加入队列。继续抓取

我用eclipse启动的,在order.xml里配置了recover文件的路径,启动以后发现仍然把抓过的抓了呀?
5 楼 zzzz3621 2011-12-17  
wangwei3 写道
zzzz3621 写道
:博主
Based on a recovery是根据recovery文件继续抓取,我也把里面的内容看了,就是有个疑惑。
recovery文件里存的是日志吧? 根据这个文件怎么才能做到原有基础上抓取?
因为本来我们自己建立一个job,设了种子的话,爬虫是抓下这个网页,解析出URL,去重后,把URL入队,就是这么个过程吧?
recovery文件里存的是日志,那么只有一些抓了和入队没还没抓的信息,那么要解析出新的URL是从什么地方出发呢?
然后他只是存了这些URL信息,是不是还是要重新获取网页的呀?


create on recovery job,好像是这个。。。他会读取日志文件,重新生成去重库和把为抓取的种子加入队列。继续抓取

我用的是1.14.0,有点理解了,就是重新生成了抓过和没抓的队列,再由调度器调度到处理器,就这样继续。。。。  那岂不是要有个处理recovery的类吧?  那些队列里应该也有相应的方法吧?
4 楼 wangwei3 2011-12-16  
zzzz3621 写道
:博主
Based on a recovery是根据recovery文件继续抓取,我也把里面的内容看了,就是有个疑惑。
recovery文件里存的是日志吧? 根据这个文件怎么才能做到原有基础上抓取?
因为本来我们自己建立一个job,设了种子的话,爬虫是抓下这个网页,解析出URL,去重后,把URL入队,就是这么个过程吧?
recovery文件里存的是日志,那么只有一些抓了和入队没还没抓的信息,那么要解析出新的URL是从什么地方出发呢?
然后他只是存了这些URL信息,是不是还是要重新获取网页的呀?


create on recovery job,好像是这个。。。他会读取日志文件,重新生成去重库和把为抓取的种子加入队列。继续抓取
3 楼 zzzz3621 2011-12-15  
:博主
Based on a recovery是根据recovery文件继续抓取,我也把里面的内容看了,就是有个疑惑。
recovery文件里存的是日志吧? 根据这个文件怎么才能做到原有基础上抓取?
因为本来我们自己建立一个job,设了种子的话,爬虫是抓下这个网页,解析出URL,去重后,把URL入队,就是这么个过程吧?
recovery文件里存的是日志,那么只有一些抓了和入队没还没抓的信息,那么要解析出新的URL是从什么地方出发呢?
然后他只是存了这些URL信息,是不是还是要重新获取网页的呀?
2 楼 wangwei3 2010-11-17  
wqiuliapril 写道
请问博主,您提供的这个类是要写在哪个包下呢?需要在其他地方引用吗?我是初学者,麻烦多多指教啊

这个是在order.xml中修改的,或者在配置的时候选base on exist
1 楼 wqiuliapril 2010-08-16  
请问博主,您提供的这个类是要写在哪个包下呢?需要在其他地方引用吗?我是初学者,麻烦多多指教啊

相关推荐

    heritrix抓取的操作和扩展

    这将使Heritrix抓取的页面以镜像形式保存在本地目录,而非生成ARC存档文件。 - 设置属性:在`Settings`页面,有许多预设组件的值可供调整。每个属性旁边都有问号图标,点击后可查看详细解释。 Heritrix的扩展性...

    Heritrix在Windows下的运行

    Heritrix是一款开源的网络爬虫工具,由Internet Archive开发,用于抓取互联网上的网页和其他资源。这款工具因其强大的自定义性和灵活性而受到广大开发者和数据分析师的喜爱。在Windows环境下运行Heritrix,需要了解...

    Heritrix在windows下运行成功

    Heritrix是一款开源的网页爬虫工具,由互联网档案馆(Internet Archive)开发,主要用于大规模地从互联网上抓取和存档网页...通过以上步骤,Heritrix可以在Windows系统上稳定运行,实现高效的信息采集和网页抓取任务。

    很好的heritrix学习资料

    接下来是"Heritrix使用的初步总结 - 企业应用 - Java - ITeye论坛.mht",这个文件很可能是某个开发者在ITeye论坛上分享的Heritrix使用心得。ITeye论坛是一个中国程序员交流的平台,这类帖子通常包含了实践中的技巧、...

    开发自己的搜索引擎 lucene + heritrix

    Heritrix 支持各种复杂的抓取策略和规则,如深度优先、广度优先,以及各种过滤器和钩子,能够有效地抓取互联网上的资源。它能够处理大规模的网页抓取任务,并支持对抓取内容的归档管理。 综合Lucene和Heritrix,...

    heritrix抓取指南

    《Heritrix抓取指南》 Heritrix是一款强大的网络爬虫工具,广泛应用于数据采集和分析。本指南将详细介绍如何利用Heritrix抓取淘宝商城大家电分类下的空调商品信息。 首先,确定我们的目标:抓取淘宝商城空调商品...

    heritrix1.14.0jar包

    3. **lib**:存放jar包,这是Heritrix运行的基础,包括了Heritrix自身的类库和其他依赖的第三方库,如Apache Commons、log4j等。 4. **src**:源代码目录,虽然用户可能不会直接修改,但有助于理解Heritrix的内部...

    扩展Heritrix3指定内容提取.pdf

    这一对象是执行抓取流程的核心,用户在实现新的提取器时需要在逻辑上与这一对象相配合,以确保新添加的提取器能够在适当的时候被调用执行。 从以上内容中我们可以提取出以下知识点: 1. Heritrix3的定位与功能:...

    heritrix正确完整的配置heritrix正确完整的配置

    理解这些文件的结构和作用是配置Heritrix的基础。 3. **作业配置** (`job.xml`): 这是Heritrix的核心配置文件,定义了爬虫的目标、策略、规则等。你需要指定起始URLs、抓取深度、爬取速度、是否遵循robots.txt协议...

    Heritrix在Eclipse中的源文件

    Heritrix是一个开源的互联网爬虫工具,由Internet Archive开发并维护,用于抓取和保存网页数据。在Eclipse这样的集成开发环境中配置Heritrix源文件,可以方便开发者进行定制化开发、调试和理解Heritrix的工作原理。...

    heritrix-3.1.0 最新jar包

    Heritrix 3.1.0 是一个强大的网络爬虫工具,主要用于抓取和存档互联网上的网页。这个最新版本的jar包包含了Heritrix的核心功能,为用户提供了一个高效的网页抓取框架。Heritrix的设计理念是模块化和可配置性,使得它...

    heritrix3.1 官方指导手册

    Heritrix 支持分布式部署模式,可以在多台机器上并行执行抓取任务,大大提高了抓取速度和效率。 #### 二十八、Heritrix 3.x API 指南 Heritrix 提供了一套丰富的 API 接口,用户可以利用这些接口开发定制化的应用...

    Heritrix1.14.4(含源码包)

    1. **爬虫基础**:Heritrix是一个Web爬虫,其主要功能是自动遍历互联网上的网页,按照预设的规则抓取内容。它通过模拟浏览器发送HTTP请求,接收服务器响应,并处理返回的数据。 2. **工作流程**:Heritrix的工作...

    Heritrix使用详解与高级开发应用

    Heritrix是一个强大的Java开发的开源网络爬虫,主要用于从互联网上抓取各种资源。它由www.archive.org提供,以其高度的可扩展性而著称,允许开发者自定义抓取逻辑,通过扩展其内置组件来适应不同的抓取需求。本文将...

    网络爬虫Heritrix1.14.4可直接用

    Heritrix是一款强大的开源网络爬虫工具,由互联网档案馆(Internet Archive)开发,主要用于抓取和保存网页内容。Heritrix 1.14.4是该软件的一个较早版本,但依然具有广泛的适用性,尤其对于学习和研究网络爬虫技术...

    heritrix-1.14.2.zip

    Heritrix 1.14.2 是一个开源的网络爬虫工具,它主要用于抓取互联网上的网页和其他在线资源。这个版本的Heritrix在2007年左右发布,虽然较旧,但它仍然是理解网络爬虫技术的一个重要参考。 Heritrix是一个由Internet...

    Heritrix爬虫框架 完整版

    在部署和运行Heritrix时,你可能需要配置运行环境(如JDK),设定合理的抓取策略,编写或调整配置文件,以及监控和调试爬虫的运行状态。 总之,Heritrix是一个强大且灵活的网络爬虫框架,通过深入学习和实践,你...

Global site tag (gtag.js) - Google Analytics