当前位置:文档之家› 开源搜索引擎比较

开源搜索引擎比较

开源搜索引擎的比较
1.N utch
简介:
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、遵循robots.txt,当爬虫访问一个站点时,会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。

2、采用基于Hadoop的分布式处理模型,支持分布式的实现。

3、Nutch可以修剪内容,或者对内容格式进行转换。

4、Nutch使用插件机制,可以很好的被用户定制和集成。

5、Nutch采用了多线程技术。

6、将爬取和建索引整合在了一起,爬取内容的存储方式是其自己定义的
segment,不便于对爬取的内容进行再次处理,需要进行一定的修改。

7、因为加入了对页面分析,建索引等功能其效率与heritrix相比要相对较低。

2.H eritrix
简介:
Heritrix是一个用Java实现的基于整个web的可扩展的开源爬虫框架。

Heritrix主要由三大部件:范围部件,边界部件,处理器链组成。

范围部件主要按照规则决定将哪个URI入队;边界部件跟踪哪个预定的URI将被收集,和已经被收集的URI,选择下一个 URI,剔除已经处理过的URI;处理器链包含若干处理器获取URI,分析结果,将它们传回给边界部件。

采用广度优先算法进行爬取。

heritrix用来获取完整的、精确的、站点内容的深度复制。

包括获取图像以及其他非文本内容。

抓取并存储相关的内容。

对内容来者不拒,不对页面进行内容上的修改。

重新爬行对相同的URL不针对先前的进行替换。

特点:
1、各个部件都具有较高的可扩展的,通过对各个部件的修改可以实现自己的抓
取逻辑。

2、可以进行多种的配置,包括可设置输出日志,归档文件和临时文件的位置;
可设置下载的最大字节,最大数量的下载文档,和最大的下载时间;可设置工作线程数量;可设置所利用的带宽的上界;可在设置之后一定时间重新选择;包含一些可设置的过滤机制,表达方式,URI路径深度选择等等。

3、采用多线程技术。

4、保存的内容是原始的内容,采用镜像方式存储,即按照斜杠所划分出的层次
结构进行存储,同时也会爬取图片等信息。

5、同样也遵守robots.txt规范。

6、在硬件和系统失败时,恢复能力很差。

3.W ebSPHINX
简介:
WebSPHINX是一个Java类包和Web爬虫的交互式开发环境。

WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包。

爬虫工作台提供接口实现对爬虫的配置;类包则提供对爬虫进行扩展需要的一些支持。

其工作原理为从一个基点网站出发,遍历其中的所有有用信息,同时抽去其中的链接信息放入队列,以待有空闲蠕虫(worm)时,从队列中读取,发出request 请求,继续进行信息抽取和链接入队列的工作。

特点:
1、保存网页的原始内容。

2、采用多线程技术。

3、采用广度优先遍历算法进行爬取。

4、支持HTML解析,URL过滤,页面配置,模式匹配等等。

5、适用于爬取小规模的网页,例如爬取单一的个人站点。

4.W eblech
简介:
WebLech是一个用Java实现的功能强大的Web站点下载与镜像工具。

它支持按功能需求来下载web站点并能够尽可能模仿标准Web浏览器的行为。

WebLech有一个功能控制台并采用多线程操作。

特点:
1、支持多线程技术。

2、可维持网页的链接信息,可配置性较强,配置较为灵活,可设置需获取的网页文件的类型、起始地址、抓取策略等14 项内容。

3、采用广度优先遍历算法爬取网页。

4、保存网页的原始内容。

5.J spider
简介:
JSpider是一个完全用Java实现的可配置和定制的Web Spider引擎.你可以利用它来检查网站的错误(内在的服务器错误等),网站内外部链接检查,分析网站的结构(可创建一个网站地图),下载整个Web站点,你还可以写一个JSpider插件来扩展你所需要的功能。

Jspider主要由规则、插件和事件过滤器三部分组成,规则决定获取和处理什么资源;插件可以根据配置叠加和替换功能模块;事件过滤器选择处理什么事件或则独立的插件。

特点:
1、扩展性较强,容易实现对爬虫功能的扩展。

2、目前只支持下载HTML,不支持下载动态网页。

3、保存原始网页内容。

6.S pindle
简介:
spindle是一个构建在Lucene工具包之上的Web索引和搜索工具.它包括一个用于创建索引的HTTPspider和一个用于搜索这些索引的搜索类。

spindle项目提供了一组JSP标签库使得那些基于JSP的站点不需要开发任何Java类就能够增加搜索功能。

该项目长期没有更新且功能不完善。

7.J obo
简介:
JoBo是一个用于下载整个Web站点的简单工具。

它本质是一个WebSpider。

与其它下载工具相比较它的主要优势是能够自动填充form(如:自动登录)和使用cookies来处理session。

JoBo还有灵活的下载规则(如:通过网页的URL,大小,MIME类型等)来限制下载。

8.S noics-reptile
简介:
snoics-reptile是用纯Java开发的,用来进行网站镜像抓取的工具,可以使用配制文件中提供的URL入口,把这个网站所有的能用浏览器通过GET的方式获取到的资源全部抓取到本地,包括网页和各种类型的文件,如:图片、flash、mp3、zip、rar、exe等文件。

可以将整个网站完整地下传至硬盘内,并能保持原有的网站结构精确不变。

只需要把抓取下来的网站放到web服务器(如:Apache)中,就可以实现完整的网站镜像。

9.A rachnid
简介:
Arachnid是一个基于Java的webspider框架.它包含一个简单的HTML剖析器能够分析包含HTML内容的输入流.通过实现Arachnid的子类就能够开发一个简单的Webspiders并能够在Web站上的每个页面被解析之后增加几行代码调用。

相关主题