http://guoyunsky.iteye.com/blog/613249
之前说过要分享下我的爬虫经验,但一直找不到突破口,现在才感觉写点东西真的很难,所以大家真的要感谢那些无私的前辈们,在网上留下的一篇篇可以指点迷津的文章。
想了很久,还是先从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**: 在`...