建立数据映射关系

将整理箱结构建设好以后,需要指定信息属性的内容应该从目标页面的哪个HTML DOM节点上提取,我们将这个过程称为映射,并专称为数据映射,与下一章的线索映射相对。

为了增强信息提取规则的适应性(目标页面HTML结构的微小调整不影响先前生成的信息提取指令),MetaSeeker工具包并不是单纯地根据目标信息所处的位置生成信息提取规则,而可以选择下面的三种途径:

  • 进行数据映射,也就是直接指定目标信息的确切位置,进行绝对定位,容易受目标页面结构变化的影响
  • 进行FreeFormat映射,FreeFormat标志是信息提取的标志,参照它定位目标信息,受目标页面结构变化的影响很小
  • 进行样例复制品映射,只用于容器节点,用于计算多实例信息块的重现参数。

以上三种映射操作都是从DOM树视窗的鼠标右键弹出菜单激发的,下面将详细讲解其用法。



数据映射

DOM树视窗的鼠标右键弹出菜单内容映射下的子菜单是动态生成的,整理箱中每个叶子节点(不是容器节点)都有一个菜单项。在DOM树视窗中选择某个DOM节点,点击该菜单,可以将该节点映射到指定的信息属性上,就会在工作台左栏的信息属性编辑区节点列中出现该节点的序号。

有下述方法选择DOM节点:

  • 普通选择:将DOM树逐级展开,找到目标节点。
  • 反向选择:在系统的输出区中的浏览器窗口上直接点击目标信息,DOM树的对应节点所在的树枝就会展开。要使用该功能,首先要将工具条上的选中,系统将重置鼠标点击的缺省处理方式,将在DOM树上找到被点击HTML元素

多数情形下,是从DOM树的text节点向信息属性影射的,当然,MetaStudio支持的映射不限于此,例如,图片的映射甚至使用自由表达式表示的映射。另外,哪种DOM节点允许映射到特定的信息属性上跟信息属性的特性有关,详见《高级用户手册》。如果映射操作不符合要求,会弹出一个提示框说明原因,如果仍然找不出失败原因,可以在MetaSeeker使用经验交流区寻求帮助

注意:由于页面上HTML页面元素的嵌套关系会干扰对被点击的HTML元素的定位(主要发生在反向选择文本内容时),系统在DOM树上找到的节点很可能是真正的目标节点的父节点,所以,用户需要查证系统找得是否精确。因为DOM树上的节点被选中时在浏览器窗口中的对应元素将以红色边框闪烁几次,所以查证过程比较直观。



FreeFormat映射

如果被提取的DOM节点具有FreeFormat标志,或者在本子容器范围内的某个祖先节点具有FreeFormat标志,可以利用此标志以提高信息提取规则的适应性。无论容器节点还是叶子节点都能进行FreeFormat映射。

寻找FreeFormat标志时,不能超出本子容器的范围。无论是顶层容器还是内部的子容器,都代表HTML页面上的一个块,这个块的范围是由MetaStudio根据本子容器包含的信息属性的定位参数计算出来的,如果选择的FreeFormat标志不符合范围约束条件,在生成信息提取规则时将弹出一个提示框。

选择DOM节点的方法同上一节,选定后,点击FreeFormat映射弹出菜单,可以看到所有的信息属性都是一个菜单项,选择某个菜单项就将具有FreeFormat标志的DOM节点映射到了该信息属性上。在整理箱结构树FreeFormat列和类型列上将分别显示相关的FreeFormat标志信息。

已经进行了数据映射的信息属性仍然可以进行FreeFormat映射,用以提高信息提取的准确性。如果还没有为信息属性进行数据映射,执行FreeFormat映射是会自动设定text类的block特性,提取被映射的DOM节点下的所有文本内容,可以根据需要取消这个设定而手工进行数据映射,以更准确地提取文本内容。



样例复制品映射

操作过程一节斜体字所述,样例复制品的映射方法有了很大变化,只有容器节点才有多实例值,而且如果容器节点使用FreeFormat标志进行定位,可以省却样例复制品映射的麻烦。

如果需要使用样例复制品计算多实例提取规则,首先要激活该功能。需要下面的步骤:

  • 在整理箱结构树上选择该容器节点
  • 样例复制品管理区有一个右键鼠标弹出菜单,该菜单是一个乒乓菜单,如果还没有激活样例复制品功能,菜单名是激活第二个样例复制品,点击后,样例复制品管理区将变亮
  • 在DOM树视窗中选择将被映射的DOM节点,点击鼠标右键,选择菜单样例复制品映射->第一个,该节点的序号将显示在样例复制品管理区的第一个radio按钮后面
  • 在DOM树视窗中选择将被映射的第二个DOM节点(应该是第一个节点的紧邻的兄弟节点),点击鼠标右键,选择菜单样例复制品映射->第二个,该节点的序号将显示在样例复制品管理区的第二个radio按钮后面