1 怎样定义抓取网页数据的规则
MetaSeeker工具的用处是定义抓取网页数据的规则,就像首 页所说,手工编写抓取网
页数据的规则容易出错,MetaSeeker能够自动生成抓取规则,使用直观的图形化界面,将人为编码错误的可能降到最 小,而且能够用极短的时间定义一套新的信息提取规则。
与其它网页数据抓取工具不同,MetaSeeker首先引导用户为目标网页定义语义结构(我们称之为信息结构), 并且存储到信息结构描述文件中,这一步看似多余,实际上意义重大,因为目标网站的页面结构可能随着时间进行改变,例如,网站软件进行升级等,原先定义的抓 取网页数据的规则可能会部分失效,需要针对最新页面结构进行调整,调整信息结
构要比直接调整抓取规则直观的多,因为信息结构直接对应网页内容的语义结构, 加上图
形化用户界面(GUI)的便利性,锁定目标网站信息结构变化很容易。
另外,定义信息结构,而不是直接对网页在浏览器上的展现形式或者HTML源代码文
档进行分析,网站更换界面风格(称为皮肤,skin或者 theme)或者修改HTML文档中各内容块的位置和顺序不会导致原先定义的网页数据抓取规则失效。
定义信息结构还有更重大的意义,将网页数据抓取演进到语义网络时代的内容格式化和结构化数据(data sets)管理,抓取下来的结构化网页数据由于包含语义元数据,既可以很
容易的集成到Web 2.0的服务器系统中,例如,垂直搜索、SNS、商品比价服务、商业情报(智能)分析等等,又可以顺利地向Web 3.0(语义网络)时代演进,例如,建设异构数据
对象搜索、结构化数据对象的多形式展现(例如,手机搜索或者手机mashup混搭)等。
与其它网页数据抓取工具的另外一个重大区别是:MetaSeeker工具包将生成抓取网页数据规则和使用抓取规则进行数据抽取的工作分到两个软件工 具上,即MetaStudio 和DataScraper, 是一种高度模块化设计,而且增加了部署的灵活性。
实际上,生成网页数据
抓取规则和爬行网络提取信息是两个泾渭分明的任务,分别用不同的模块实现可以最恰当
的贴合软件运行逻辑,例如,DataScraper采用了工作流框架,既确保软件执行效率又确保系统的扩展性,如果想增强DataScraper爬行网络 的能力,只需要扩展工作流的处理节点即可,关于DataScraper的特点和分析留待《DataScraper 使用手册》详述。
MetaStudio生成的抓取网页数据的规则存储在信息提取指令文件中,即数据提取指令
文件和线索提取指令文件,顾名思义,这两个文件命令DataScraper连续不断地从目标网站
上抓取页面数据和网页上的超链接。
围绕MetaStudio的核心目标——生成抓取网页数据的规则,用户需要在图形用户界面上执行下面的步骤:
1.选定和加载样本页面:目标网站上特定主题的页面都有相似的网页结构,选定其中一
个作为样本,为其定义的抓取网页数据的规则将适用其它所有同主题的 页面,当然,网站上同主题的多个页面结构往往有细微的差别,在后续的章节中可以看到,
MetaStudio提供很多精巧的手段应对网页结构的变化。
2.命名主题: 给正在定义的信息结构和网页数据抓取规则取一个名字,代表特定的语
义,DataScraper中的定题网络爬虫按照这个名字分主题爬行网络。
3.定义数据提取规则:首先需要使用GUI将信息结构描述出来,就像用图形用户界面操
作关系数据库一样,定义一张表,并定义很多字段,但 是,MetaStudio的语义表述
能力强大得多,除了能够定义表状信息结构外,还能够定义树状信息结构。
定义了信息结构后,需要使用鼠标点选页面上的内 容,并点击菜单,将页面上的内容映射到信息结构的各字段上(我们称之为信息属性, 是信息结构的组成部分),
MetaSeeker与其它网页抓取工具相比能够更精确的抽取网页内容而且不容易受网页结构变化的影响,这得益于采用了专利的 FreeFormat技术,所以,在GUI上除了映射网页内容以外,还要做一些网页结构信息的映射,将在后续章节详述。
4.定义线索提取规则:用于从页面上提取进一步爬行的线索,一般属于另一个主题,例
如,第一个主题抓取论坛首页上的帖子列表,获得每个帖子页面的 URL地址,属于第二个主题。
同上一步类似,在GUI上点选进行映射后,由MetaStudio自动生成线
索提取规则。
5.定义语义结构识别规则:当前版本,语义结构识别规则实际上是在定义数据提取规则
和线索提取规则时自动生成的,暂时不支持手工定义的识别规则。
DataScraper利用此识别规则检查目标页面是否符合预期的信息结构,如果不符合,DataScraper会产生告警,用户可以修正原先定义的信息 结构,扩展其覆盖范围。
描述Web页面信息结构的过程是用户分析目标页面采用什么样的HTML文档结构的过程,假设目标网站的内容存储在数据库中,而网页是动态生成的,那么这个过程就像是重构数据库的反向工程,所以,要准确猜测出目标网站的数据库结构并非易事。
每个HTML
页面含有的元素(Element)和特性(Attribute)的数量十分巨大,妨碍用户准确快速的分析,MetaStudio工具有个内嵌的网页DOM展现窗口,配合 直观的页面内容点选,虽然大大简化了分析过程,用户要完全掌握目标页面的信息结构,仍然需要多次的“分析-验证-再分析
”的循环过程,所以视目标页面信息 的复杂度而定,上面的步骤可能需要循环进行。