网络采集器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常用转义字符:
&(和) & <(小于号) < >(大于号) > "(双引号) " '(单引号) '
HTML常用转义字符:
&(和) & <(小于号) < >(大于号) > "(双引号) " (空格) ©(版权符) © ®(注册符) ®