总体来说Heritrix网络蜘蛛的功能更为强大,Nutch更好地支持搜索引擎(与Lucene紧密结合)。两者特点对比如下:
-
Nutch是一个搜索引擎框架,而Heritrix专注于网络信息的下载。
-
Nutch只获取并保存可索引的内容,并可对下载后有内容过滤修改,而Heritrix则可以适用各种类型信息,严格保持网页原貌。
-
Nutch的更新策略是直接替换原来的旧网页,为索引作好准备;而Heritrix则保留历史内容,下载新内容。
-
都以任务形式管理,Nutch只支持命令行,Heritrix还支持Web控制界面。
-
Nutch下载控制参数少,Heritrix更加灵活。
Heritrix 是个 "archival crawler" -- 用来获取完整的、精确的、站点内容的深度复制。包括获取图像以及其他非文本内容。抓取并存储相关的内容。对内容来者不拒,不对页面进行内容上的修改。重新爬行对相同的URL不针对先前的进行替换。爬虫通过Web用户界面启动、监控、调整,允许弹性的定义要获取的URL。
Heritrix中有几个关键模块这里介绍一下:
-
下载控制器CrawlController。总控部分,以主线程形式运行。通过调试,最终把下载地址管理器Frontier中地址列表传递给线程池中的ToeThreads,完成下载任务。
-
边界控制器Frontier。用来确定下一个将抓取的网页。实现对网站访问的均衡处理,避免多线程同时访问同一个网站造成网站压力。Frontier内至少包含最新发现的URL、正在处理的URL、已经下载的URL。
-
服务器缓存Servercache。实现搜索引擎中的DNS缓存。Servercache中存放服务器的持久信息,包括IP地址、历史下载记录、机器人策略等。