`

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的使用入门

    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)。这两个...

    Heritrix1.4.4安装配置使用手册

    Heritrix1.4.4安装配置使用手册,有研究索引技术的可以下载看看.

    heritrix1.14.0jar包

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

    heritrix系统使用.ppt

    heritrix系统使用、一个ppt 介绍heritrix的基本概念、以及原理知识

    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的二进制发行...

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

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

    很好的heritrix学习资料

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

    heritrix-3.4.0-SNAPSHOT-dist.zip

    在实际使用中,用户需要先阅读官方文档,了解如何配置和启动Heritrix,然后根据项目需求调整配置文件,最后执行启动脚本来运行爬虫。需要注意的是,由于Heritrix的复杂性,可能需要一定的Java和网络爬虫知识才能充分...

    Heritrix搭建好的工程

    “readMe.txt”文件通常包含了工程的说明和使用指南,包括如何启动、配置和使用Heritrix。这个文件对于初学者来说是非常有价值的资源,因为它提供了关于如何操作这个预配置工程的具体步骤。 总的来说,Heritrix工程...

    Heritrix部署直接能运行的项目

    Heritrix是IA的开放源代码,可扩展的,基于整个Web的,归档网络爬虫工程 Heritrix工程始于2003年初,IA的目的是开发一个特殊的爬虫,对网上的 资源进行归档,建立网络数字图书馆,在过去的6年里,IA已经建立了400...

Global site tag (gtag.js) - Google Analytics