同普通网络爬虫的比较
网络爬虫(Crawler)有很多名字,例如,蜘蛛(Spider)或者机器人(Robot)等,毫无疑问,MetaSeeker产品也采用了网络爬虫的理念,DataScraper主要承担了网络爬虫的职责,然而,MetaSeeker工具包并不是普通的网络爬虫。
普通的网络爬虫从一个页面开始,沿着页面上所有的链接爬行到尽可能多的页面上(或者用户设定爬行深度),在爬行的同时,将爬行到网页的内容及其目录结构存储下来。如果您问它找到了什么,假设它会说话,它会告诉您:“我找到了一堆数据和找到更多数据的线索”,但是它不知道这堆数据是什么,如果您想建立一个信息检索系统,这足够了,只要将找到的数据中的文本索引到数据库中即可。但是,如果您想根据语义对数据进行不同的处理,普通网络爬虫帮不上什么忙。
相反,MetaSeeker工具能够从堆积如山的Web数据中提取出有结构的信息来,它能够使用XML标签标定每个数据项的含义。但是,MetaSeeker 不具有人工智能,它不能像人类一样理解隐含在数据中的语义。它需要您的指导,您告诉它哪里、哪类网页上有什么结构的信息,但是它提供了很多便利手段,使您的指导简单易行,它也具有很强的适配能力,您只要给它一次指令,它能够筛选出所有同类目标,在尽量大的范围内执行指令。
概而言之,虽然多了指导MetaSeeker这一环节,回报是丰厚的,一旦在用户指导下提取到信息,这些信息是有结构的,信息的进一步处理可以由机器完成,例如,使用XSLT指令直接将结果文件转换或整合成HTML文件、输出到portal上或者提供mashup服务,普通网络爬虫胜任不了。
注意:MetaSeeker也可以像普通爬虫一样提取页面上的所有线索并下载整个页面内容,但是存储结果时不能复现目标网站的层次化的目录结构。
同普通HTML Wrapper(包装器)的比较
为了能够从HTML页面上提取特定的信息,需要一个功能部件,将HTML上的内容按照特定的模板重新组合,称为包装,可能的操作例如进行格式转换、过滤掉不需要的信息等等,在信息提取(网页抓取/抽取)系统中Wrapper是至关重要的,但是,由于目标网站成千上万,不得不实现成千上万的专用的Wrapper,而且根据开发人员或者项目组的喜好,可能采用了各种各样的编程语言,基本上都是为特定项目服务的,甚至是为特定目标网站服务的。针对这种状况,大家自然而然地想开发出通用的Wrapper来,甚至期望开发出Wrapper生成器。MetaSeeker就是一个Wrapper生成器,而且大大发展了Wrapper生成器的设计理念,突出特点提现在以下几点:
- MetaSeeker产生的Wrapper是元数据驱动的(meta-driven),而不特定于某种编程语言;
- MetaSeeker是一个基于图形界面的免编程Wrapper生成器,大大降低了对操作人员的技能要求;
- 生成的Wrapper并不是一个特定的部件,而是将Wrapper的功能融入一个分布式系统结构中,可以胜任高吞吐量即时的HTML信息提取(网页抓取/抽取)。
MetaSeeker的特点
- 对Web技术是透明的,无论目标网站是用什么技术建立的,如html, php, jsp, asp, aspx, xhtml等等,MetaSeeker都一视同仁。
- 适应性强,能够提取各种论坛、博客、黄页和商业名录信息,免除用户为每一个网站甚至每一个频道定制信息提取(网页抓取/抽取)软件。
- 免编程定义信息提取(网页抓取/抽取)规则,也就是所谓的HTML封装器(HTML Wrapper),用户只需操作GUI界面,由系统自动生成各种信息提取规则和指令文件。
- 使用方便,操作直观,不包括用户理解目标页面语义结构花费的时间,用户定义信息提取(网页抓取/抽取)规则花费的时间是分钟级的。
- 验证手段完善,可以即时发现当前定义的信息结构有什么不足、信息提取规则是否准确等,定义过程和验证过程可以穿插进行,很快地定义出准确的信息结构。
- 管理工具功能强大,用户可以直观地跟踪信息结构定义的状态和信息提取进度和结果。
- 分布式部署,有效避免系统性能瓶颈的出现
- 准确性高,跟同类产品相比,MetaSeeker提取信息的准确性很高,用户可以放心地由程序自动处理信息提取结果,不必二次人工筛选。
MetaSeeker的弱点
- 使用MetaStudio定义信息提取规则的过程比较繁琐,最理想的方法是自动识别网页信息结构并生成信息提取规则,例如,采用基于规则的方法或者基于机器学习的方法自动生成提取规则,但是这类自适应的方法的准确度是有限的而且应用范围也是受限的。所以,MetaSeeker这个弱点可以看成为提高信息提取准确性付出的代价,准确的信息提取可以减轻后期数据清洗和预处理的负担。
- 某些情况下(例如,一个HTML页面的内容是从大量的源上下载下来的),DataScraper同一些直接从网页的HTML源文件提取信息的系统相比提取速度比较慢,因为DataScraper要等待整个页面上的内容都加载完成后才开始提取,但是,这种设计可以防止内容遗漏,例如,DataScraper能够完整地提取到FRAME/IFRAME里面的内容,DataScraper在客户端大量部署可以从一定程度上弥补速度满的弱点。注:这个弱点到V4.11.2企业版有所缓解,从那个版本开始,用户可以禁止某些内容的下载,详细说明参见《怎样提高采集京东商城商品价格的速度》