专利名称:一种基于html流处理的数据采集方法和系统的制作方法
技术领域:
本发明属于网页信息抽取技术领域,具体涉及一种数据采集方法和系统。
背景技术:
网页信息抽取工作是将网络上海量的数据以某种方式收集起来,这些数据是做研 究分析,机器学习,数据挖掘等工作的重要素材。已经有很多解决这个问题的方法,但是大 多数停留于理论上。目前,网页信息抽取技术可分为基于网页结构和利用概率模型进行机 器学习的方法。1、利用概率模型学习的方法首先通过采集一定数量的网页样本,选定样本类型之后,后根据经验以及一些已 有的知识进行特征抽取。然后通过人工标注的方式为分类器提供需要的答案。之后选取概 率模型进行机器学习工作,常见的分类器有,SVM,CRF等。通常由于大量的前期工作和假设, 目前做到的最好的工作是对特定领域进行抽取,这就限制了其在实际应用中的发展空间。2.基于网页结构的方法此类方法带原理上通常比较简单,大致可以分为两个类型,类型一,遍历下载,此 类方法在页面中穷尽链接,然后继续延续链接进行数据下载,这类方法主要的不足之处是 无法判定下载范围以及无法对用户需要的信息进行格式化存储。类型二是利用网站的本身 结构,这种方法可以解决类型一所面临的问题,但是此类方法主要存在于对指定网站的下 载,他要求程序模拟每一个需要下载的网站,这导致了效率的低下。
发明内容
本发明的目的在于提出一种成本低、效率高的网络数据采集方法。本发明利用同类网站存在共同结构特性的特点,总结规划的通用的模板模型,在 降低了人工操作成本的同时,高效的实现了多路信息的同时采集。本发明是一种基于HTML流处理的数据采集方法。该方法的实施系统由多线程收 集器和下载控制模板以及数据存储系统构成。如上所述,网络数据采集的主要问题就是在保证效率的前提下如何降低人工投入 成本进行更加细致的信息采集。本发明利用模板继承的方式处理HTML的数据流来解决这 个问题。其步骤包括通过HTTP协议获取HTML文档数据流,然后利用一些节点来处理传入 的数据流,这些节点以树的形式来表示,执行步骤为从树的根节点出发,按深度扩展的顺序 往下进行处理,对于同一层的节点按其先后顺序处理;对每一个节点都设置有一定的属性, 这些属性的设置是处理和编辑的核心部分;每个节点都传入当前数据流(Stream)和需要 进行存储的数据信息,这些信息都不会因为通过其子节点返回之后而改变,控制模板节点 的细则如表1所示。这些节点分为有返回值和无返回值两类,无返回值的节点包括Pattern节点,为父节点,所有的其他节点都可以作为它的子节点。它本身并不包含任何属性,其他的所有节点都由它派生而来。Filter节点,可以把所有的其它节点作为它的子节点,截取上一层数据流中的一 部分字符串,作为其子节点的传入数据流,它截取以Head开头,以Tail结尾的字符串,按照 Type中的节点截取一段。Group节点,可以把所有的其它节点作为它的子节点。它将数据流根据分段标签分 段,对于分出的每一段数据流给其子节点的节点处理。Store节点,其子节点只能是有返回值的节点,保存继承得到的以及在其子节点返 回的数据流,并将其中的内容保存起来。Open节点,其子节点只能是有返回值的节点,它打开Url/Interc印t节点中截取 得到的Url,0pen节点可以选择要打开的Url,需要使用的控制模板也可以选择是否将这个 Url保存起来。Replace节点,可以把所有的其它节点作为它的子节点,用来替换一些特定的字符
串οR印eat节点,可以把所有的其它节点作为它的子节点,它用来重复执行一定次数 的其子节点,次数可以指定也可以截取,当指定的次数小于0时,将选用截取的次数。有返回值的节点的返回值都包括name和value,所得的节点将被父亲节点进行处 理。有返回值的节点包括Interc印t节点,这个节点是存储数据的的主要节点,它不包含子节点,作用是截 取上一层数据流中的一部分字符串,截取部分与Filter节点的作用相同,不同的是这个节 点将截取的数据流返回给父节点。Count节点,不包含子节点,得到输入数据流种特定的字符串的个数。Merge节点,子节点只能是有返回值的节点,用来合并这些节点。图1是本系统的运行流程图,本系统主要由以下几个部分组成下载任务列表,线 程池,下载器,下载控制模板,解析器以及文件存储系统。首先,从任务队列中获得一个下载任务,如果任务列表为空,则系统运行结束,否 则将任务传输到下载线程池;如果线程池有空闲线程则执行任务,否则任务仍在任务列表 中等待,直到线程池有空闲线程为止,线程数量可以根据运行的具体环境在配置文件中控 制。如果执行任务成功,则将下载的HTTP数据流输入到解析器,解析器由与任务配套 的下载控制模板来控制;如果执行任务失败,则将任务返回到下载任务列表中;成功解析 的结构化数据被存储到文件系统之中。如果是最后一个任务,则系统运行完结。对于每一个网站,可以根据需要来配置这个网站需要的模板,这与其他方法所说 的配置模板有所不同,本发明配置模板的目的不仅是为了指示系统的运行路径,更主要的 是自由的选取需要进行存储的网络信息。由于定义了表1所示的模板类型,因此在实用中 进行操作是十分便利的。
有益效果本发明采用下载控制模板的方式,解决了网络数据采集过程中精准度和效率的结 合问题,可以用于各种网络信息的自动采集。具有下述优点。1.模板的设计具有通用性和易读性,可以涵盖所有的数据采集要求。
2.模板的通用性,使模板配置工作简单,模板易读性增强,便于维护。3.利用数学方法来检验冗余操作,多线程技术分配下载任务,使系统具有非常高 的工作效率。4.允许使用人灵活的配置模板,使本系统具有非常广阔的实用价值。5.采集范围和类型十分广泛,几乎不受限制 。6.有网络的计算机就可以运行,运行成本低廉。
图1系统运行流程图。图2下载控制模板根入口。图3设置存储数据的下载控制模板。图4系统运行后保存于存储系统中的数据。
具体实施例方式以”http:WWW. youku. com/v”为实施例测试收集的页面的源入口,首先配置下载控 制模板根入口(参见图2所示),在固定格式的xml文档中来设置。使用人根据自己需要设置的存储数据下载控制模板,由这个模板来表示哪些数据 是需要本系统进行存储的,以使用人需要存储的内容是每个视频的题目,所在页面的链接, 描述以及发表时间为例,配置存储数据的下载控制模板(参见图3,本图为配置的模板中的 一部分,是表1所介绍的节点的一个实例)。解析器通过读取HTML流和图3中的存储数据的下载控制模板内容,解析出使用人 需要的数据,存储于数据存储系统中。图4是存储于数据库中的结果。本发明配置相应页面的下载控制模板,设置系统允许的最大同时下载次数,在有 网络环境的计算机中,运行程序,就可以开始进行数据采集。本发明还具备一些常用的数据 处理异常功能,如网络切断时的任务列表保存。任务出现异常或意外被中止后的运行恢复寸。控制下载模板节点规则,表1
权利要求
一种基于HTML流处理的数据采集方法,其特征在于具体步骤如下通过HTTP协议获取HTML文档数据流之后,利用一些节点来处理传入的数据流,这些节点以树的形式来表示,执行步骤为从树的根节点出发,按深度扩展的顺序往下进行处理,对于同一层的节点按其先后顺序处理;每一个节点都设置有一定的属性;每个节点都传入当前数据流和需要进行存储的数据信息,这些信息不会因为通过其子节点返回之后而改变;通过多线程进行多路并行处理,以及数学概率模型进行下载检验,将处理后的数据保存于存储系统之中。
2.根据权利要求1所述的基于HTML流处理的数据采集方法,其特征在于所述节点分为 有返回值和无返回值两类,其中,无返回值的节点包括Pattern节点,为父节点,所有的其他节点都作为它的子节点,它本身并不包含任何属 性,其他的所有节点都由它派生而来;Filter节点,把所有的其它节点作为它的子节点,截取上一层数据流中的一部分字符 串,作为其子节点的传入数据流,它截取以Head开头,以Tail结尾的字符串,按照Type中 的节点截取一段;Group节点,把所有的其它节点作为它的子节点;它将数据流根据分段标签分段,对于 分出的每一段数据流给其子节点的节点处理;Store节点,其子节点是有返回值的节点,保存继承得到的以及在其子节点返回的数据 流,并将其中的内容保存起来;Open节点,其子节点是有返回值的节点,它打开Url/Interc印t节点中截取得到的 Url, Open节点选择要打开的Url,需要使用的控制模板选择是否将这个Url保存起来; Replace节点,可以把所有的其它节点作为它的子节点,用来替换一些特定的字符串; R印eat节点,把所有的其它节点作为它的子节点,它用来重复执行一定次数的其子节 点,次数指定或截取,当指定的次数小于0时,将选用截取的次数;有返回值的节点的返回值都包括name和value,所得的节点被父亲节点进行处理;有 返回值的节点包括Interc印t节点,是存储数据的的主要节点,它不包含子节点,作用是截取上一层数据 流中的一部分字符串,截取部分与Filter节点的作用相同,不同的是这个节点将截取的数 据流返回给父节点;Count节点,不包含子节点,得到输入数据流种特定的字符串的个数; Merge节点,子节点是有返回值的节点,用来合并这些节点。
3.—种如权利要求1所述的基于HTML流处理的数据采集方法的实施系统,其特征在 于,由以下几个部分组成下载任务列表,线程池,下载器,下载控制模板,解析器以及文件 存储系统;首先,从任务列表中获得一个下载任务,如果任务列表为空,则系统运行结束,否则将 任务传输到下载线程池;如果线程池有空闲线程则执行任务,否则任务仍在任务列表中等 待,直到线程池有空闲线程为止,线程数量根据运行的具体环境在配置文件中控制;如果执行任务成功,则将下载器下载的HTTP数据流输入到解析器,解析器由与任务配 套的下载控制模板来控制;如果执行任务失败,则将任务返回到下载任务列表中;成功解 析的结构化数据被存储到文件存储系统之中;如果是最后一个任务,则系统运行完结。
全文摘要
本发明属于网页信息抽取技术领域,具体是一种基于HTML数据流处理的数据采集方法和系统。它由多线程收集器和下载控制模板以及数据存储系统构成。多线程收集器保证了工作速度,下载控制模板保证了工作的准确性。本系统可以在通过简单的模板配置,完成对使用人需要的网络数据的采集。实际应用表明本发明具有良好的稳定性,高度的实用性以及高效的效率。
文档编号G06F17/30GK101859321SQ20101017937
公开日2010年10月13日 申请日期2010年5月20日 优先权日2010年5月20日
发明者张奇, 施洋, 黄萱菁 申请人:复旦大学