现象
MetaSeeker允许用户在一个主题下定义多个信息结构。该功能是很有用的,有时候目标网站的同一类网页之间的结构有稍微的变化,举例来说,在网购站上,如果商品是VIP商户发布的,可能与普通商户显示的数据内容和格式有些差别,那么我们可以定义一个主题,而在该主题下为普通商户和VIP商户的商品分别定义信息结构,各自生成一套网页数据抓取规则。当DataScraper运行时,自动选择适合的那个信息结构。
假设用户定义了信息结构A,在MetaStudio的Bucket Editor工作台上定义了数据抓取规则,在Clue Editor工作台上定义了线索抓取规则;假设用户又定义了信息结构B,只在Clue Editor工作台上定义了线索抓取规则。
运行DataScraper为该主题抓取网页数据时,DataScraper运行中断,停留的状态:EWNDS / START,这两个字符串显示在DataScraper中部的监控面板中。
如果察看日志文件datascraper.log.txt,可以看到下面的信息:
2010-06-09 14:52:59 ExtractWebNodeData_Simp extract ERROR: Null gemFile 2010-06-09 14:52:59 ExtractWebNodeData_Simp Run ERROR: Fail to extract information 2010-06-09 14:52:59 DataScraperEngine:ScheduleProcessor demo_douban_group_list ERROR: Fail to run a processor 2010-06-09 14:52:59 DataScraperEngine ScheduleProcessorStack ERROR: Fail to schedule processor
避免方法
为同一个主题定义多个信息结构时,信息结构之间一定要保持一致,Bucket Editor和Clue Editor工作台要么都是空的,要么都在其上定义抓取规则,不能为信息结构A定义抓取规则,而不给信息结构B定义。即使对某个信息结构来说抓取数据或者超链接是不需要的,也要定义一个规则以保持一致。
解决计划
该Bug计划在V5或者以后版本解决。