网络爬虫(Crawler)有很多名字,例如,蜘蛛(Spider)或者机器人(Robot)等,毫无疑问,MetaSeeker产品也采用了网络爬虫的理念,DataScraper主要承担了网络爬虫的职责,然而,MetaSeeker工具包并不是普通的网络爬虫。
普通的网络爬虫从一个页面开始,沿着页面上所有的链接爬行到尽可能多的页面上(或者用户设定爬行深度),在爬行的同时,将爬行到网页的内容及其目录结构存储下来。如果您问它找到了什么,假设它会说话,它会告诉您:“我找到了一堆数据和找到更多数据的线索”,但是它不知道这堆数据是什么,如果您想建立一个信息检索系统,这足够了,只要将找到的数据中的文本索引到数据库中即可。但是,如果您想根据语义对数据进行不同的处理,普通网络爬虫帮不上什么忙。
相反,MetaSeeker工具能够从堆积如山的Web数据中提取出有结构的信息来,它能够使用XML标签标定每个数据项的含义。但是,MetaSeeker 不具有人工智能,它不能像人类一样理解隐含在数据中的语义。它需要您的指导,您告诉它哪里、哪类网页上有什么结构的信息,但是它提供了很多便利手段,使您的指导简单易行,它也具有很强的适配能力,您只要给它一次指令,它能够筛选出所有同类目标,在尽量大的范围内执行指令。
概而言之,虽然多了指导MetaSeeker这一环节,回报是丰厚的,一旦在用户指导下提取到信息,这些信息是有结构的,信息的进一步处理可以由机器完成,例如,使用XSLT指令直接将结果文件转换或整合成HTML文件、输出到portal上或者提供mashup服务,普通网络爬虫胜任不了。
注意:MetaSeeker也可以像普通爬虫一样提取页面上的所有线索并下载整个页面内容,但是存储结果时不能复现目标网站的层次化的目录结构。
为了能够从HTML页面上提取特定的信息,需要一个功能部件,将HTML上的内容按照特定的模板重新组合,称为包装,可能的操作例如进行格式转换、过滤掉不需要的信息等等,在信息提取(网页抓取/抽取)系统中Wrapper是至关重要的,但是,由于目标网站成千上万,不得不实现成千上万的专用的Wrapper,而且根据开发人员或者项目组的喜好,可能采用了各种各样的编程语言,基本上都是为特定项目服务的,甚至是为特定目标网站服务的。针对这种状况,大家自然而然地想开发出通用的Wrapper来,甚至期望开发出Wrapper生成器。MetaSeeker就是一个Wrapper生成器,而且大大发展了Wrapper生成器的设计理念,突出特点提现在以下几点: