开源搜索引擎的比较
1. Nutch
简介
Nutch是一个用java实现的基于Lucene的开源搜索引擎框架,主要包括爬虫和查询两部分组成。Nutch所使用的数据文件主要有以下三种:1)是webDb,保存网页链接结构信息,只在爬虫工作中使用。2)是segment,存储网页内容及其索引,以产生的时间来命名。segment文件内容包括CrawlDatum、Content、ParseData、ParseText四个部分,其中CrawlDatum保存抓取的基本信息,content保存html脚本,ParseData和ParseText这两个部分是对原内容的解析结果。3)是index,即索引文件,它把各个segment的信息进行了整合。爬虫的搜索策略是采用广度优先方式抓取网页,且只获取并保存可索引的内容。
Nutch0.7需要java1.4以上的版本,nutch1.0需要java1.6
特点:
1 遵循,当爬虫访问一个站点时,会首先检查该站点根目录下是否      存在,如果存在,搜索机器人就会按照该文件中的内容来确定访问    的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。
2、采用基于Hadoop的分布式处理模型,支持分布式的实现。
3Nutch可以修剪内容,或者对内容格式进行转换。
4、 Nutch使用插件机制,可以很好的被用户定制和集成。
5、 Nutch采用了多线程技术。
6、 将爬取和建索引整合在了一起,爬取内容的存储方式是其自己定义的segment,不便于对爬取的内容进行再次处理,需要进行一定的修改。
7、 因为加入了对页面分析,建索引等功能其效率与heritrix相比要相对较低。
2. Heritrix
简介
Heritrix是一个用Java实现的基于整个web的可扩展的开源爬虫框架。Heritrix主要由三大部件:范围部件,边界部件,处理器链组成。范围部件主要按照规则决定将哪个URI入队;边界部件跟踪哪个预定的URI将被收集,和已经被收集的URI,选择下一个 URI,剔除已经处理过的URI;处理器链包含若干处理器获取URI,分析结果,将它们传回给边界部件。采用广度优先算法进行爬取。
heritrix用来获取完整的、精确的、站点内容的深度复制。包括获取图像以及其他非文本内容。抓取并存储相关的内容。对内容来者不拒,不对页面进行内容上的修改。重新爬行对相同的URL不针对先前的进行替换。
特点
1、 各个部件都具有较高的可扩展的,通过对各个部件的修改可以实现自己的抓取逻辑。
2、 可以进行多种的配置,包括可设置输出日志,归档文件和临时文件的位置;可设置下载的最大字节,最大数量的下载文档,和最大的下载时间;可设置工作线程数量;可设置所利用的带宽的上界;可在设置之后一定时间重新选择;包含一些可设置的过滤机制,表达方式,URI路径深度选择等等。
3、 采用多线程技术。
4、 保存的内容是原始的内容,采用镜像方式存储,即按照斜杠所划分出的层次结构进行存储,同时也会爬取图片等信息。
5、 同样也遵守规范。
6、 在硬件和系统失败时,恢复能力很差。
3. WebSPHINX
简介
WebSPHINX是一个Java类包和Web爬虫的交互式开发环境。WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包。爬虫工作台提供接口实现对爬虫的配置;类包则提供对爬虫进行扩展需要的一些支持。
其工作原理为从一个基点网站出发,遍历其中的所有有用信息,同时抽去其中的链接信息放入队列,以待有空闲蠕虫(worm)时,从队列中读取,发出request 请求,继续进行信息抽
取和链接入队列的工作。
特点
1、 保存网页的原始内容。
2、 采用多线程技术。
3、 采用广度优先遍历算法进行爬取。
4、 支持HTML解析,URL过滤,页面配置,模式匹配等等。
5、适用于爬取小规模的网页,例如爬取单一的个人站点。
4. Weblech
简介
WebLech是一个用Java实现的功能强大的Web站点下载与镜像工具。它支持按功能需求来下载web站点并能够尽可能模仿标准Web浏览器的行为。WebLech有一个功能控制台并采用多
线程操作。
特点:
1、 支持多线程技术。
2、可维持网页的链接信息,可配置性较强,配置较为灵活,可设置需获取的网页文件的类型、起始地址、抓取策略等14 项内容。
3、 采用广度优先遍历算法爬取网页。
4、保存网页的原始内容。
5. Jspider
简介
JSpider是一个完全用Java实现的可配置和定制的Web Spider引擎.你可以利用它来检查网站的错误(内在的服务器错误等),网站内外部链接检查,分析网站的结构(可创建一个网站地图),下载整个Web站点,你还可以写一个JSpider插件来扩展你所需要的功能。
Jspider主要由规则、插件和事件过滤器三部分组成,规则决定获取和处理什么资源;插件可以根据配置叠加和替换功能模块;事件过滤器选择处理什么事件或则独立的插件。
特点:
1、 扩展性较强,容易实现对爬虫功能的扩展。
2、 目前只支持下载HTML,不支持下载动态网页。
3、 保存原始网页内容。
6. Spindle
简介session下载
spindle是一个构建在Lucene工具包之上的Web索引和搜索工具.它包括一个用于创建索引的HTTPspider和一个用于搜索这些索引的搜索类。spindle项目提供了一组JSP标签库使得那些基于JSP的站点不需要开发任何Java类就能够增加搜索功能。该项目长期没有更新且功能不完善。
7. Jobo
简介
JoBo是一个用于下载整个Web站点的简单工具。它本质是一个WebSpider。与其它下载工具相比较它的主要优势是能够自动填充form(如:自动登录)和使用cookies来处理sessionJoBo还有灵活的下载规则(如:通过网页的URL,大小,MIME类型等)来限制下载。
8. Snoics-reptile
简介
snoics-reptile是用纯Java开发的,用来进行网站镜像抓取的工具,可以使用配制文件中提供的URL入口,把这个网站所有的能用浏览器通过GET的方式获取到的资源全部抓取到本地,包括网页和各种类型的文件,如:图片、flashmp3ziprarexe等文件。可以将整个网站完整地下传至硬盘内,并能保持原有的网站结构精确不变。只需要把抓取下来的网站放到web服务器(如:Apache)中,就可以实现完整的网站镜像。
9. Arachnid
简介
Arachnid是一个基于Javawebspider框架.它包含一个简单的HTML剖析器能够分析包含HTML内容的输入流.通过实现Arachnid的子类就能够开发一个简单的Webspiders并能够在Web站上的每个页面被解析之后增加几行代码调用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。