metaseeker/metastudio采集淘宝宝贝的用户评论信息(4)

时间:2013/5/20 10:42:24  作者:未知  来源:网络  查看:89449  评论:0
内容摘要:为了采集用户评论信息,DataScraper必须模拟用户点击“评价详情”标签,所以,需要定义两个信息结构:第一个从样本页面上采集普通信息并模拟用户点击;第二个从用户评论列表中采集信息。这跟层级导航采集的原理一样,但是,普通的层级采集是导航到其它网页,而本例没有导航到其它网页,仅仅局部修改网页内容。

2.2.3 分页采集规则
metaseeker/metastudio采集淘宝宝贝的用户评论信息
图7

图7显示如下步骤:

    在Clue Editor工作台上创建一条线索
    设置成线内线索类型
    设置记号线索类型,网页上的“下一页”字样作为记号。
    进行线索映射
    进行记号映射
    将记号识别模式设置成包含模式
    编辑记号值,将“下一页>>”中的两个大于号删除
metaseeker/metastudio采集淘宝宝贝的用户评论信息
图8

MetaSeeker采用的FreeFormat技术能够提高采集规则的适应性,所以,即使没有显式作FreeFormat映射,MetaStudio缺省情况下计算采集规则时也会自动选择FreeFormat标志,在网页上存在很多@class和@id属性,它们都有可能被自动选用,但是,有时候自动选用的不太合适,需要手工调整,一般遵从就近原则。手工调整方法是设置节点定位首选项。图8显示设置步骤:

    选择菜单“配置”-〉“首选项”。
    在首选项弹出对话框中选择“线索定位”标签
    选择“偏好class”,就会优选@class='show-rate-table',而不选@id='reviews',前者更靠近表示翻页区的DOM节点HTML TFOOT

注释:如果不采用就近原则,而是采用缺省设置,MetaStudio会自动选择@id='reviews',实测发现有时候翻页不成功,很有可能网页的动态修改部分的结构有变化,如果不就近选择的话,可能在节点@id='reviews'和@class='show-rate-table'之间动态插入了其它HTML DOM节点,造成定位失败。如果采用就近原则,动态插入其它DOM节点的几率大大降低。

至此,两个信息结构都定义完了,上载后可供DataScraper使用。

3 DataScraper运行方法

如果手工执行批量采集任务,在DataScraper的主题列表中只对主题名demo_TB_detail执行采集操作即可,DataScraper会自动从第一个主题导航到第二个主题。参看《批量采集当当网价格》介绍的操作方法。自动周期性批量采集方法一样,只需为第一个主题指定周期性采集指令即可。

4 信息结构加载方法

如果想修改以前定义的信息结构,例如,目标网页结构变了需要修改采集规则,需要先将其加载到MetaStudio的工作台上。第一个信息结构是普通的网页采集信息结构,加载方法没有什么不同。第二个信息结构用于采集AJAX显示的内容,需要执行“后续分析”操作。
metaseeker/metastudio采集淘宝宝贝的用户评论信息
图9

图9显示demo_TB_comment的加载过程:

  1. Schema List工作台上选中待加载的信息结构,并点击鼠标右键,弹出菜单
  2. 选择菜单项“加载”,开始加载信息结构
  3. 能够看到网页已经完全加载到内嵌浏览器上了,而且弹出一个对话框,提示用户进行后续分析
  4. 关闭反向选择模式
  5. 在网页上点击“评价详情”,激发网页从淘宝服务器上下载并显示用户评论信息
  6. 等看到评论信息已经显示了,选择菜单“文件”-〉“后续分析

注意:MetaStudio有个缺陷:如果两个信息结构使用相同的样本页面,而且第一个信息结构已经加载到工作台上了,然后加载第二个,则MetaStudio的加载过程会一直等待。本例这两个信息结构就符合这个条件,如果demo_TB_detail已经加载到工作台了,现在需要看demo_TB_comment, 加载会一直处于等待状态。从内部实现原理角度进行分析,MetaStudio是在等待第二个样本页面加载到浏览器上,事实上第二个样本页面与第一个相同从 而已经在浏览器上了,MetaStudio却不知道,所以,一直等下去。该bug将在以后版本修改。当前,需要避开这个bug,可以重新运行 MetaStudio再加载第二个信息结构。


相关评论

图库精选