本博客属原创文章,欢迎转载!但转载请务必注明出处:http://guoyunsky.iteye.com/blog/613249
欢迎加入Heritrix群(QQ):109148319
之前说过要分享下我的爬虫经验,但一直找不到突破口,现在才感觉写点东西真的很难,所以大家真的要感谢那些无私的前辈们,在网上留下的一篇篇可以指点迷津的文章。
想了很久,还是先从Heritrix的包开始说起,然后再说类,最后讲下如何加工Heritrix,也就是将其打造成自己想要的爬虫,这里补充下,我用的版本是1.14.3.
同时欢迎加入我建的Heritrix爬虫群一起讨论学习: 10447185
序号 | 包名 | 说明 | 1 | org.apache.commons.httpclient | 封装了apache的httpclient用于Fetch网页内容 | 2 | org.apache.commons.httpclient.cookie | 封装了apache的httpclient用于Fetch网页内容,这里主要处理Cookie | 3 | org.apache.commons.pool.impl | 封装了apache的httpclient用于Fetch网页内容,还待研究 | 4 | org.archive.crawler | Heritrix程序运行的入口包,如Heritrix运行可以直接抓取 | 5 | org.archive.crawler.admin | Heritrix的管理包,比如CrawlJob表示一个抓取任务job,CrawlJobHandler管理JOB,以及日志统计等 | 6 | org.archive.crawler.admin.ui | 服务于UI管理界面,如Job参数的设置 | 7 | org.archive.crawler.datamodel | Heritrix的数据模型包,如在Heritrix中代表一个URL的CandidateURI | 8 | org.archive.crawler.datamodel.credential | 管理Heritrix数据模型中的凭证,如抓取某些网站需要用户名和密码 | 9 | org.archive.crawler.deciderules | Heritrix的规则包,如决定哪些URL可以抓取可以调度 | 10 | org.archive.crawler.deciderules.recrawl | 还待研究,应该是决定哪些URL需要重新抓取 | 11 | org.archive.crawler.event | 事件管理,如Heritrix的暂停、重启、停止等 | 12 | org.archive.crawler.extractor | Heritrix的造血器,通过它抽取新的URL再次进行抓取 | 13 | org.archive.crawler.fetcher | Heritrix的获取包,如获取HTTP、DNS、FTP数据 | 14 | org.archive.crawler.filter | Heritrix的过滤器,如配合Rule过滤一些不要的URL | 15 | org.archive.crawler.framework | Heritrix的框架包,存放一些核心类,一般是父类,如Heritrix控制类CrawlController;调度器类Frontier | 16 | org.archive.crawler.framework.exceptions | Heritrix框架异常包,通常这里的异常抛出会导致Heritrix的停止 | 17 | org.archive.crawler.frontier | Heritrix的调度器,决定抓取哪个URL | 18 | org.archive.crawler.io | Heritrix的IO格式包,感觉取名不合理,这里只是定义一些格式,如统计数据的格式,错误日志的格式 | 19 | org.archive.crawler.postprocessor | 辅助处理器包,感觉取名也不合理,这里只是对处理URL前后进行一些处理,如URL重定向 | 20 | org.archive.crawler.prefetch | Heritrix的预处理器包,如确定一个URL是否已经解析了DNS | 21 | org.archive.crawler.processor | 还没接触到,待研究 | 22 | org.archive.crawler.processor.recrawl | 还没接触到,待研究 | 23 | org.archive.crawler.scope | Heritrix抓取范围管理,如种子 | 24 | org.archive.crawler.selftest | 管理Heritrix的Web工程self.war | 25 | org.archive.crawler.settings | 管理Heritrix配置文件order.xml中的各项配置 | 26 | org.archive.crawler.settings.refinements | 管理Heritrix自己对数据格式的标准,如时间格式 | 27 | org.archive.crawler.url | 还没怎么接触到,待研究 | 28 | org.archive.crawler.url.canonicalize | Heritrix的URL规范化,用于规范每一个URL | 29 | org.archive.crawler.util | Heritrix用于抓取的工具包,如BDB操作工具,IO操作工具 | 30 | org.archive.crawler.writer | Heritrix的下载包,用于将抓取的URL内容写入硬盘 | 31 | org.archive.extractor | 还没接触到,待研究 | 32 | org.archive.httpclient | Heritrix为结合httpclient量身打造的包,让自身更好的获取网页内容 | 33 | org.archive.io | Heritrix的IO包,自己封装的一些IO操作类 | 34 | org.archive.io.arc | 针对arc格式的IO操作包 | 35 | org.archive.io.warc | 针对warc格式的IO操作包 | 36 | org.archive.net | Heritrix扩展了java.net的包,主要扩展java.net.URI类 | 37 | org.archive.net.md5 | Heritrix对URL MD5加密包,所用不多,待研究 | 38 | org.archive.net.rsync | 还没接触到,待研究 | 39 | org.archive.net.s3 | 还没接触到,待研究 | 40 | org.archive.queue | 还没接触到,待研究 | 41 | org.archive.uid | Heritrix ID管理,主要针对URI | 42 | org.archive.util | 整个Heritrix的工具类 | 43 | org.archive.util.anvl | 还没接触到,待研究 | 44 | org.archive.util.bdbje | Heritrix对BDB的封装 | 45 | org.archive.util.fingerprint | 还没接触到,待研究 | 46 | org.archive.util.iterator | Heritrix自身封装的迭代器 | 47 | org.archive.util.ms | 还没接触到,待研究 | 48 | st.ata.util | 扩展的其他包,待研究 |
Heritrix自己的包有48个之多,还有它导入的第三方包也有30多个,可见其复杂性...
更多技术文章、感悟、分享、勾搭,请用微信扫描:
相关推荐
这个“Heritrix源码”压缩包可能包含了Heritrix项目的完整源代码,以及相关的学习资料,对于深入理解Heritrix的工作原理、定制爬虫功能以及进行二次开发非常有帮助。以下将详细介绍Heritrix的关键知识点。 1. **...
4. **源码编译与运行**:下载Heritrix 1.14.4的源码包后,首先需要一个Java开发环境(JDK),因为Heritrix是用Java编写的。然后,使用Maven或Ant等构建工具进行编译,最后通过Java命令运行编译后的类。 5. **使用...
通过对这些包的分析,我们可以看到Heritrix是一个高度模块化和可定制的爬虫。每个组件都有明确的职责,这使得Heritrix能够适应各种复杂的网络抓取需求。深入理解这些源码,有助于开发者定制自己的爬虫策略,实现特定...
**Lucene 和 Heritrix 源码分析** 在IT领域,搜索引擎的开发是一项复杂而重要的任务,它涉及到大量的文本处理、索引构建以及高效的查询算法。Lucene 和 Heritrix 是两个开源工具,分别专注于搜索的核心算法和网页...
7. **源码分析**: 提供的`heritrix-1.14.4-src.zip`文件包含了Heritrix的源代码,这对于开发者来说是宝贵的资源。通过阅读源码,可以了解其内部工作原理,学习如何定制和扩展Heritrix的功能。 8. **开发与部署**...
### Heritrix源码分析知识点概述 #### 一、Heritrix简介 Heritrix是一款开源的网络爬虫工具,由Internet Archive开发并维护。它主要用于网页归档和大规模网络爬取任务。Heritrix的设计理念是高度可配置性和扩展性,...
Heritrix 3.2 源码的分析和理解有助于开发者深入掌握爬虫技术,定制自己的爬虫解决方案。 首先,让我们了解一下Heritrix 3.2 的核心特性: 1. **模块化设计**:Heritrix 3.2 采用组件化的架构,使得不同的爬取功能...
总结来说,Heritrix 3.1.0 是一款功能强大、可定制的网络爬虫工具,适用于学术研究、数据分析、网站存档等多种场景。无论是对互联网数据的需求者还是开发者,都可以通过这个jar包和源代码深入理解网络爬虫技术,并...
最后,"heritrixProject"很可能包含了Heritrix的配置和源码,用于自定义网络爬取的行为和范围。 总结起来,Lucene和Heritrix是构建高效网络搜索系统的关键组件。Lucene提供强大的全文索引和搜索能力,而Heritrix则...
源码分析对于理解Heritrix的工作原理至关重要。通过对源码的阅读,我们可以了解其内部架构,包括线程模型、数据流控制和模块间的通信机制。例如,Heritrix采用多线程设计,每个组件如fetcher、parser和archiver都在...
Heritrix是一款强大的开源网络爬虫工具,专为大规模网页抓取而设计。它由互联网档案馆(Internet Archive)开发,旨在系统性地、可扩展地抓取互联网上的信息资源,为研究人员、数据分析师和图书馆员等用户提供丰富的...
《lucene2.0+Heritrix配套源码》是一个针对搜索引擎开发的资源包,包含了构建自定义搜索引擎所需的关键组件。Lucene是一个流行的全文搜索引擎库,而Heritrix则是一个强大的网页抓取工具,用于收集互联网上的数据。这...
Heritrix的源码分析有助于开发者理解网络爬虫的工作原理,学习如何处理HTTP请求、解析HTML、管理URL队列以及存储和索引抓取的数据。 Lucene是Apache软件基金会的项目,它是Java最著名的全文检索库。Lucene提供了...
### Heritrix爬虫安装部署知识点...通过以上详细介绍,我们不仅了解了Heritrix的基本概念和工作原理,还掌握了其安装部署的详细步骤以及如何运行示例项目。这对于初次接触Heritrix的用户来说是非常有价值的参考资料。
1. **启动与安装**: 首先,你需要下载Heritrix的源码或预编译的二进制包,根据系统环境进行安装。安装完成后,通过命令行启动Heritrix,如在Java环境中使用`java -jar heritrix.jar`。 2. **配置文件结构**: ...
Heritrix 是一个开源的网络爬虫工具,用于抓取网页并进行深度索引或分析。在配置和使用 Heritrix 时,有几个关键步骤和注意事项需要了解。 首先,要开始配置 Heritrix,你需要从官方网站下载源码包(如 heritrix ...
Heritrix是一款开源的网络爬虫工具,由互联网档案馆(Internet Archive)开发,用于抓取互联网上的网页和资源。这个强大的工具允许用户自定义抓取策略,以便于构建自己的网络数据采集系统。Heritrix提供了高度可配置...
在提供的文件列表中,`wherespider_1.0.4.0_source`可能就是这个源码包。 2. **构建项目**:安装Java开发环境(如JDK),然后使用Maven或Ant等构建工具编译源码,生成可执行的jar文件。 3. **配置**:Heritrix的工作...
你可以从Heritrix的官方网站或GitHub仓库获取最新版本的源代码或预编译的二进制包。下载完成后,将其解压缩到你选择的目录。通常,解压后的文件夹包含`bin`、`conf`、`lib`等子目录。 3. **配置Heritrix**: 在`...