解决网络采集器MetaSeeker的bug - XPath转义

网络采集器MetaSeeker中的MetaStudio软件能够自动生成网络采集规则,在V4.11.0 版本以前,存在一个bug,说明如下。

遇到bug的情形

例如样本网页:http://rmp.aps.org/toc/RMP/v82/i2 ,该网页正文右上角有个超链接:“< Previous Issue”,用于翻到前一篇文章。假设要生成一个网络采集规则,采集本网页的正文内容并翻页到前一页,继续采集前一页的正文,如此重复采集所有内容。

用户可以使用MetaStudio(免费下载)加载信息结构demo_marker_invalidmark,对照本文研究XPath转义不成功的bug。注意,本信息结构避免了该bug情形,以方便用户加载,下面说明怎样重现该bug。

加载了demo_marker_invalidmark,观察Clue Editor工作台,发现创建了一个记号线索,将文本“Previous Issue”作为记号进行了记号映射,如果我们针对该超链接再重复一遍记号映射,发现被填入编辑框的完整的记号是“< Previous Issue”,如果使用完整的记号,会因为“<”符号导致信息结构无法再次加载,MetaStudio状态条显示

     加载信息结构到Theme Info工作台

可见,加载过程中断了。



解决XPath表达式转义的bug

网络采集器MetaSeeker V4.11.0 将解决该Bug,提示用户手工编辑转义或者删除该特殊字符,详细操作过程参看网络采集规则中使用转义符



XML和HTML中常用的转义符号

根据文章XPath 查询使用简介

   XPath 可以包含在 XML 中具有特殊含义的字符,如 < 或 &(模板为 XML 文档)。必须使用 XML & 编码对这些字符进行转义

下面是XML和 HTML常用转义字符

XML常用转义字符:

   &(和)         &amp;
   <(小于号)     &lt;
   >(大于号)     &gt;
   "(双引号)     &quot;
   '(单引号)     &apos;

HTML常用转义字符:

   &(和)         &amp;
   <(小于号)     &lt;
   >(大于号)     &gt;
   "(双引号)     &quot;
   (空格)        &nbsp;
   ©(版权符)     &copy;
   ®(注册符)     &reg;