基于工作流引擎的网页数据抽取原理

网页数据抽取的原理十分简单,达到目的的途径十分直接,所以,寥寥几行程序代码就可以实现一个特定的网页数据抽取程序,编程语言可以是所有流行语言,例如,Python、Java、PHP、Delphi、Javascript、Ruby以及微软技术体系, 当前的境况是:存在大量的分散开发的网页数据抽取程序片断;这些程序片断都是专门针对特定网站开发的;无法适应目标网页结构的变化。所以,消耗了大量的人 力和财力,重复开发各种不能重用的代码,使用网页数据抽取软件的企业由于将大量精力分散给网页数据抽取代码的开发,从而难于专注于企业业务运营目标。由此 可见,实现通用的网页数据抽取系统如此重要,同时要面临诸多挑战,最大的挑战在于通用性、灵活性和适应性。

为应对上述挑战,DataScraper的核心采用了自主研发的网页数据抽取专用的工作流引擎,按照网页数据抽取工作流指令文件的 规定按顺序调度工作流处理器。是一个稳固的网页数据抽取软件框架,即便网页数据抽取需求千差万别,都不影响这个框架,而在这个框架中,是为执行特定网页数 据抽取任务步骤的程序模块,用统一的程序结构进行封装,这些模块称为工作流处理器节点,当网页数据抽取任务过于复杂时,可以开发专用的处理器节点,并合理 组合各处理器节点和执行顺序,实现通用性、灵活性和适应性目标。

DataScraper的网页数据抽取工作流有两大组成部分:

  • 调度器:由定时器调度,使用令牌控制调度策略。
  • 上下文容器:保存全局的上下文环境参数,供处理器之间交换数据或者令牌。

网页数据抽取工作流处理器的实现框架是一样的,对外接口有:

  • 从上下文容器获得其他处理器或者系统产生的数据
  • 向上下文容器输出数据供其他处理器使用
  • 从上下文容器中获得系统和其他处理器发出的控制指令,例如,是否停止整个工作流、是否跳过本处理器等等。一个最重要的控制指令是令牌,令牌决定了工作流中处理器的调度。每个处理器被调度时要检查令牌,判断自己应该怎样运行,在向下一处理器传递令牌时可以修改令牌的内容

你可能感兴趣的:(基于工作流引擎的网页数据抽取原理)