怎样快速定义类似的抓取网页内容的规则

假设已经采用抓取网页内容的规则生成工具MetaStudio为某个网站定义了一个信息结构并成功生成了抓取网页内容的规则,例如,定义了一套提取规则专门抓取阿里巴巴的电子类公司的信息,如果还想抓取机械类公司的信息,怎么做?需要从头再定义一个全新的信息结构吗?又例如,已经定义了一套网页内容抓取规则用于抓取某个论坛网站的PHP编程讨论组的帖子列表,现在还想抓取该论坛网站的oracle数据库使用经验讨论组的帖子列表,面临相同的问题。这两个例子想回答的共同的问题是:怎样将现有的抓取网页内容的规则应用于类似的网页?

显然,从头再定义一套全新的抓取网页内容的规则是可行的,但是,MetaStudio工具提供了一些便利的工具,可以利用以前的信息结构快速扩展抓取网页内容的规则的应用范围。

MetaStudio的系统菜单中有个菜单项文件->分析页面,用于检查加载到MetaStudio的内嵌浏览器中的网页是否能够使用某个抓取网页内容的规则进行抓取,灵活使用该工具就能回答上述问题,操作步骤如下:

  1. 在MetaStudio的Schema List工作台上将前一个信息结构加载到工作台
  2. 将新的论坛讨论组或者公司信息网页地址URL输入到MetaStudio上端的工具条的地址输入栏,回车,新网页将加载到内嵌浏览器中,等待MetaStudio下端的状态条显示完成,表示网页加载完毕。
  3. 点击MetaStudio菜单文件-〉分析页面,如果新加载的网页与原来的信息结构一致,不会有错误告警
  4. 观察MetaStudio工具条的样本页面加载状态图标,应该是绿色的,表示已经为新网页做好生成抓取网页内容的规则的准备。
  5. 操作员需要做一个决定:是否使用相同的主题抓取新网页的内容。如果采用相同的主题,那么抓取网页内容的结果文件都存放在同一个以主题名命名的目录下,也就是说抓取结果混合在一起,如果想分开处理抓取结果文件,那么这个决定显然不合适。当然,只是想不分类别地采集公司信息,这样做更方便一些,因为抓取网页内容的软件DataScraper使用定题爬虫按主题爬行网络,两个不同主题就需要启动两个不同的抓取会话。
  6. 如果命名不同主题名,需要分别在MetaStudio的Theme Editor工作台和Clue Editor工作台分别根据需要命名主题,前者为了给以新加载网页作为样本页面的信息结构命名主题,后者是为了给抓取到的超链接命名主题,如果使用相同主题名,跳过该步骤。
  7. 如果命名不同的主题名,点击MetaStudio上端工具条的Schema按钮,上载新信息结构和新的抓取网页内容的规则文件;如果使用相同主题名,只需要点击工具条的Instruction按钮,只上载抓取网页内容的规则文件即可。如果上载成功,会在服务器上为定题网络爬虫创建一条信息提取线索记录,DataScraper使用该记录爬行指向的网站页面并抓取网页内容。

当然,在执行上述步骤前首先要观察和判断新网页内容是否具有类似的信息结构,如果根本就不相同,就不必进行上述步骤了,上述步骤是为了将先前定义的信息结构推广应用到相同语义结构的其他网页上。

MetaStudio还提供了其它一些便利工具,灵活运用可以大大提高定义抓取网页内容规则的效率,例如:

  • 在Theme List工作台上采用识别工具为新发现的线索定义信息结构
  • 一个接着一个连续定义信息结构时,采用清空工作台工具为定义下一个信息结构做好准备
  • 为了提高抓取网页内容的规则的适应性,可以微调网页内容定位原则