`

heritrix请求操作无法使用用户映射区域打开文件上执行

    博客分类:
  • seo
阅读更多
Heritirx的各类问题汇总
为什么出现这种错误?

06/14/2007 11:07:38 +0800 警告 org.archive.io.ReplayCharSequenceFactory$MultiByteReplayCharSequence decodeToFile D:\eclipse\workspace\heritrixProject\jobs\163-20070614025526671\scratch\tt13http.ris.UTF-16BE already exists
06/14/2007 11:07:40 +0800 警告 org.archive.io.ReplayCharSequenceFactory$MultiByteReplayCharSequence decodeToFile D:\eclipse\workspace\heritrixProject\jobs\163-20070614025526671\scratch\tt5http.ris.UTF-16BE already exists
06/14/2007 11:07:40 +0800 严重 org.archive.io.ReplayCharSequenceFactory$MultiByteReplayCharSequence deleteFile Deleting D:\eclipse\workspace\heritrixProject\jobs\163-20070614025526671\scratch\tt5http.ris.UTF-16BE because of java.io.FileNotFoundException: D:\eclipse\workspace\heritrixProject\jobs\163-20070614025526671\scratch\tt5http.ris.UTF-16BE (请求的操作无法在使用用户映射区域打开的文件上执行。)
06/14/2007 11:07:40 +0800 严重 org.archive.crawler.extractor.ExtractorHTML extract Failed get of replay char sequence in ToeThread #5: http://mobile.163.com/0011/product/0011000B/product/000D/0BKN/0BKP/0HHY.html
java.io.FileNotFoundException: D:\eclipse\workspace\heritrixProject\jobs\163-20070614025526671\scratch\tt5http.ris.UTF-16BE (请求的操作无法在使用用户映射区域打开的文件上执行。)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at org.archive.io.ReplayCharSequenceFactory$MultiByteReplayCharSequence.decodeToFile(ReplayCharSequenceFactory.java:868)
at org.archive.io.ReplayCharSequenceFactory$MultiByteReplayCharSequence.decode(ReplayCharSequenceFactory.java:746)
at org.archive.io.ReplayCharSequenceFactory$MultiByteReplayCharSequence.<init>(ReplayCharSequenceFactory.java:682)
at org.archive.io.ReplayCharSequenceFactory$MultiByteReplayCharSequence.<init>(ReplayCharSequenceFactory.java:673)
at org.archive.io.ReplayCharSequenceFactory.getReplayCharSequence(ReplayCharSequenceFactory.java:127)
at org.archive.io.RecordingOutputStream.getReplayCharSequence(RecordingOutputStream.java:460)
at org.archive.io.RecordingInputStream.getReplayCharSequence(RecordingInputStream.java:357)
at org.archive.util.HttpRecorder.getReplayCharSequence(HttpRecorder.java:296)
at org.archive.crawler.extractor.ExtractorHTML.extract(ExtractorHTML.java:497)
at org.archive.crawler.extractor.Extractor.innerProcess(Extractor.java:67)
at org.archive.crawler.framework.Processor.process(Processor.java:103)
at org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:304)
at org.archive.crawler.framework.ToeThread.run(ToeThread.java:153)原因是:在本地机器上,为每个Heritrix的线程所分配的缓冲区数量不够,导致线程需要频繁和磁盘交换。避免这一问题的方法是1. 在settings里面,将recorder-in-buffer-bytes这个属性的值改大,默认时是65536(64K),可以将其改成1048576 = 1M,这样就不会报这个错了。或是直接将order.xml里的这个值改大也行。






6/17/2007 09:45:26 +0000 严重 org.archive.crawler.framework.CrawlController ini
tialize On crawl: sohu_news Unable to setup crawl modules
java.lang.ClassCastException: org.archive.crawler.settings.ModuleType cannot be cast to org.archive.crawler.framework.Frontier
        at org.archive.crawler.framework.CrawlController.setupCrawlModules(Crawl
Controller.java:654)
        at org.archive.crawler.framework.CrawlController.initialize(CrawlControl
ler.java:377)
        at org.archive.crawler.admin.CrawlJob.setupForCrawlStart(CrawlJob.java:8
46)
        at org.archive.crawler.admin.CrawlJobHandler.startNextJobInternal(CrawlJ
obHandler.java:1142)
        at org.archive.crawler.admin.CrawlJobHandler$3.run(CrawlJobHandler.java:
1125)
        at java.lang.Thread.run(Unknown Source)
org.archive.crawler.framework.exceptions.InitializationException: On crawl: sohu
_news Unable to setup crawl modules
        at org.archive.crawler.framework.CrawlController.initialize(CrawlControl
ler.java:383)
        at org.archive.crawler.admin.CrawlJob.setupForCrawlStart(CrawlJob.java:8
46)
        at org.archive.crawler.admin.CrawlJobHandler.startNextJobInternal(CrawlJ
obHandler.java:1142)
        at org.archive.crawler.admin.CrawlJobHandler$3.run(CrawlJobHandler.java:
1125)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassCastException: org.archive.crawler.settings.ModuleType
cannot be cast to org.archive.crawler.framework.Frontier
        at org.archive.crawler.framework.CrawlController.setupCrawlModules(Crawl
Controller.java:654)
        at org.archive.crawler.framework.CrawlController.initialize(CrawlControl
ler.java:377)
        ... 4 more

这种错误有很多版本,但是基本上,只要碰上java.lang.ClassCastException

一般都是由于处理器链没有正确设置而导致

比如,在应该是Prefetcher的地方,设置成了Writer。这样就会导致错误

请严格按照以下方式来设置:

1. frontier

org.archive.crawler.frontier.BdbFrontier

2. scope

org.archive.crawler.scope.BroadScope

3. Prefetcher

org.archive.crawler.prefetch.Preselector
org.archive.crawler.prefetch.PreconditionEnforcer

4. Fetcher

org.archive.crawler.fetcher.FetchDNS
org.archive.crawler.fetcher.FetchHTTP

5. Extractor

org.archive.crawler.extractor.ExtractorHTTP
org.archive.crawler.extractor.ExtractorHTML
(这里可以按自己的需要多添几个,比如ExtractorSWF、ExtractorJS什么的,但是前两个是必不可少的)

6. Writer

可以是MirrorWriter或ARCWriter,一般建议使用MirrorWriter

7. PostProcessor

org.archive.crawler.postprocessor.CrawlStateUpdater
org.archive.crawler.postprocessor.LinksScoper
org.archive.crawler.postprocessor.FrontierScheduler
(FrontierScheduler可以自行扩展,按书上的方法)
分享到:
评论

相关推荐

    Heritrix的使用入门

    Heritrix是一个强大的开源Web网络爬虫,由Java编写,主要功能是从互联网上抓取数据,为搜索引擎提供丰富的资源。它的可扩展性是其一大亮点,允许开发者自定义组件以适应不同的抓取需求。Heritrix最初来源于...

    heritrix系统使用.ppt

    Heritrix是一个强大的开源网络爬虫工具,用于批量抓取互联网上的网页。它提供了一种高效、可配置的方式来收集和处理网页数据。本篇将详细解释Heritrix系统的使用、核心概念、工作原理以及关键组件。 首先,Heritrix...

    heritrix抓取的操作和扩展

    Heritrix的强大之处还在于其模块化的设计,用户可以根据需求添加或修改处理器、过滤器和策略,以实现特定的爬网功能。此外,Heritrix支持多种数据格式,如WARC和ARC,方便数据的长期保存和分析。 在实际应用中,...

    heritrix爬虫工具的使用

    Heritrix是一款开源的网络爬虫工具,由互联网档案馆(Internet Archive)开发,用于抓取互联网上的网页和资源。这个强大的工具允许用户自定义抓取策略,以便于构建自己的网络数据采集系统。Heritrix提供了高度可配置...

    网络爬虫Heritrix1.14.4可直接用

    3. **Heritrix运行与配置**:在`Heritrix1/src/org/archive/crawler/Heritrix.java`文件中启动Heritrix后,服务会在本地的8089端口监听。通过访问`https://localhost:8089`,我们可以使用内置的Web管理界面进行配置...

    heritrix 的详细配置 与 使用资料

    在配置和使用 Heritrix 时,有几个关键步骤和注意事项需要了解。 首先,要开始配置 Heritrix,你需要从官方网站下载源码包(如 heritrix 1.12.1-src.zip)和预编译的二进制包(如 heritrix 1.12.1.zip)。这两个...

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

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

    Heritrix3手册翻译

    Heritrix 3 的文档包括用户指南和API指南,为用户提供详尽的操作和开发指导。 在Heritrix 3.0和3.1版本中,引入了一个基于Spring-container的配置系统,这使得设置管理更加灵活。此外,3.X版本的另一个显著改变是...

    heritrix1.14.0jar包

    在使用Heritrix时,"heritrix-1.14.0"这个压缩包文件包含了一系列必要的组件和库,包括核心爬虫引擎、解析器、存储模块以及各种配置文件。解压后,用户通常会找到以下几部分: 1. **bin**:存放可执行脚本,如启动...

    Heritrix用户参考手册

    《Heritrix用户参考手册》深入解读:网络爬虫的设置与操作指南 Heritrix是互联网档案馆(Internet Archive)开发的一款开源、可扩展、网络规模、档案级品质的网络爬虫工具。该手册旨在指导用户如何创建、配置并运行...

    heritrix爬虫安装部署

    - 打开命令提示符(cmd),切换到`C:\heritrix\bin`目录。 - 输入命令`heritrix --admin=admin:123456`启动服务。 ##### 2.4 开发环境下的配置 - **工程创建**: 在IDE中(如Eclipse)创建一个新的Java工程。 - **...

    Heritrix用户手册

    Heritrix用户手册,Heritrix简介与入门 Heritrix配置与开发指南

    Heritrix3.0教程 使用入门(三) 配置文件crawler-beans.cxml介绍.docx

    Heritrix 3.0 是一个强大的网络抓取框架,其设计目的是为了高效、灵活地爬取互联网上的信息。在Heritrix 3.0中,`crawler-beans.cxml` 文件扮演着至关重要的角色,它是整个爬虫的配置中心,负责定义和管理爬虫的行为...

    heritrix-3.1.0 最新jar包

    1. **heritrix-3.1.0-dist.zip**:这是Heritrix的发行版,包含运行所需的所有文件,如Java可执行文件(JARs)、配置文件和文档。用户可以直接下载并运行此版本来启动爬虫服务,无需构建源代码。其中,`heritrix-...

    heritrix 3.1

    Heritrix 3.1的类结构复杂且高度模块化,其中`Crawler`类是整个爬虫操作的中心。它负责调度工作,启动和停止爬取,管理各种模块和策略。`Seeder`类用于管理种子URL,而`Fetcher`类执行HTTP请求并获取响应。`Parser`...

    Heritrix(windows版)

    2. **heritrix-3.1.0-src.zip**:这个文件包含了Heritrix的源代码,适合开发者或者希望对软件进行定制的用户。通过源代码,你可以深入理解Heritrix的工作原理,并根据需要修改或扩展它的功能。如果你打算对Heritrix...

    heritrix-1.14.2.zip

    3. **文档**:可能包括用户指南、API文档和开发手册,帮助用户理解和使用Heritrix。 4. **配置示例**:提供默认或示例的配置文件,供用户参考和修改。 5. **依赖库**:Heritrix运行所需的第三方库,如HTTP客户端库、...

    Heritrix-3.1.0(linux版)

    Heritrix 3.1.0是其一个稳定版本,支持在Linux操作系统上运行。 在提供的压缩包文件中,有两个主要的文件:`heritrix-3.1.0-dist.tar.gz`和`heritrix-3.1.0-src.tar.gz`。这两个文件分别包含了Heritrix的二进制发行...

Global site tag (gtag.js) - Google Analytics