关于MAP文件输出结果中的指定内容需要定义成<![CDATA 网页抓取内容 ]]>

您好!

如题所述,本人有这样的需求,提取数据规则里有一个信息属性使用了FreeFormat映射所有结点,输出的结果部分如下:

<Content>
<p>网页提取数据<p>
</Content>
其中:<Content>为信息属性;
<p>网页提取数据<p>为网页提取数据内容

现在需要生成的结果文件能自动增加<![CDATA ]]>字符串.即
<Content>
<![CDATA
<p>网页提取数据<p>
]]>
</Content>

不知道目前的MetaStudio工具是否支持.如果支持,应该怎样做呢?

望您能回复.

谢谢.

是否使用CDATA是由系统确定的

当前版本并不能人工设定是否将提取到的数据字段用CDATA括起来,都是系统根据需要自动加的,您的需求可以通过设定block特性得以满足,设置block特性时设定提取整块HTML片段而不仅仅是文字,就可以将各种HTML标签一起提取下来。

另外,请注意,因为提取到的数据绝大多数是合法字符,被当成普通字符串对待。但是,个别网页上有一些控制字符,导致提取到的结果文件无法正确解析,如果需要,我们可以提供一段Java代码过滤这些字符。

通过block特性,是已能正确提取html片段

您好!
本人的需求是通过GooSeeker工具包提取的结果文件,通过java的xstream的开源框架把结果文件映射成java对象.其中在使用block特性的结果文件里,遇到html块时不能正常提取.经测试如果在提取的html块使用CDATA括起来,则可以正常提取.所以提出了目前GooSeeker工具包里是否可以指定CDATA的功能.照你这样的说法,估计目前是没有支持的.但不知道是否能从结果文件里可以标识出信息属性是使用了block特性呢?如果能支持的话,这样我们就可以通过程序来识别出来了.

另外,当你说到的有个别网页上有一些特殊字符时,也会导致结果文件无法正确解析的现象.请你也提供一个这段的Java代码,便于我们遇到时可以同时解决.

谢谢.

可以从Web信息提取指令文件中获得元信息

早先设计MetaSeeker的时候,有个假设:用户使用XML DOM接口或者SAX接口开发自己的提取结果文件的解析程序,所以,提取结果文件中并没有区分是否含有HTML片段。程序解析Web信息提取结果文件之前需要先读入指令文件中的GEM文件,该文件说明提取结果文件中哪些标签是MetaStudio定义的信息属性,程序可以特别处理,剩下的那些标签(例如,来自HTML的标签)就可以另行处理。

基于以上考虑,在指令文件中就没有另行声明哪个信息属性设置了block特性。

在这种系统框架下,采用XML SAX接口解析提取结果文件是最合适的,当然,DOM接口仍然可用。另外,在线版没有提供访问指令文件的API,只有购买企业版,部署自己的MetaSeeker服务器,可以直接从服务器上读出指令文件来。

过滤结果文件的代码请看DataScraper用户手册