一种网页数据采集方法、系统及存储介质
技术领域
本申请属于计算机数据处理技术领域,具体地,涉及一种网页数据采集方法、系统及存储介质。
背景技术
大数据时代,数据是宝贵的资源,网络平台是数据重要来源之一,批量获取网络数据的主要方式目前是通过研究人员设计开发数据采集程序和付费数据采集器产品。网络数据采集的基本流程:发送请求、获取响应,数据解析、页面跳转、数据清洗以及数据保存等。
但是,面对不同网页的数据采集任务,数据采集程序的设计和开发相似度很高,重复的设计开发工作费时费力。一旦数据采集量大,目标网页复杂,程序规模变大,后期维护的时间、人力等成本会随之增加,降低了数据采集效率。目前,有大量的数据采集器虽然简单、快速,但是定制化高、灵活性不足且原理复杂,因此不太实用复杂的网页数据采集,难以满足专业人员的需求。
因此,现有的网页数据采集系统存在定制化程度高采集数据灵活性差的问题。
发明内容
本发明提出了一种网页数据采集方法、系统及存储介质,旨在解决现有技术中网页数据采集系统存在定制化程度高采集数据灵活性差的问题。
根据本申请实施例的第一个方面,提供了一种网页数据采集方法,包括以下步骤:
根据数据采集需求信息,确定数据采集需求对应的功能模块;
读取所述功能模块,并生成带有唯一标识ID的功能节点;
根据数据采集流程将所述多个功能节点绘制成数据采集流程图;
根据所述数据采集流程图调度执行所述各功能模块,实现目标网页数据采集。
可选地,根据数据采集需求信息,确定数据采集需求对应的功能模块之后,还包括:
在功能模块库中更新添加所述功能模块;所述功能模块包括页面获取模块、页面解析模块、队列缓存模块、数据处理模块、链接提取模块、链接分析模块、外部接口模块以及数据存储模块。
可选地,读取所述功能模块,并生成带有唯一标识ID的功能节点中,具体包括:
读取所述功能模块,检测所述功能模块是否可以实现相应功能;
若可以实现相应功能则检测正常,生成带有ID标识的结构化数据;
若不可以实现相应功能则检测异常,生成针对相应功能模块的异常信息文件。
可选地,根据数据采集流程将所述多个功能节点绘制成数据采集流程图具体包括:
分析目标网页采集流程及数据结构;
设置所述功能节点,在所述功能节点处设置节点参数;
根据所述采集流程连接所述多个功能节点形成数据采集流程图。
可选地,根据所述数据采集流程图调度执行所述各功能模块,具体包括:
检测数据采集流程图对应的各功能节点的结构化参数数据,所述结构化参数数据包括功能模块的节点参数以及控制参数;
缓存所述各功能模块至缓存队列中;
根据所述节点参数的唯一标识ID调度所述队列中对应的功能模块;
根据所述控制参数执行所述调度后的功能模块。
可选地,根据所述控制参数执行所述调度后的功能模块时,还包括:
根据被执行功能模块的唯一标识ID高亮显示所述被执行功能模块。
可选地,还包括以下步骤:
设置所述数据采集流程图调试运行参数,所述调试运行参数包括功能节点运行间隔时间以及功能节点断点设置位置;
根据调试运行参数运行数据采集流程图中各功能模块;
调试运行异常时,在异常功能模块处中断,高亮显示异常功能节点;调试运行无异常时,将所述数据采集流程图保存为格式化数据文件。
根据本申请实施例的第二个方面,提供了一种网页数据采集系统,具体包括:
功能模块确定模块:用于根据数据采集需求信息,确定数据采集需求对应的功能模块;
节点生成器:用于读取所述功能模块,并生成带有唯一标识ID的功能节点;
流程图绘制模块:用于根据数据采集流程将所述多个功能节点绘制成数据采集流程图;
采集驱动模块:用于根据所述数据采集流程图调度执行所述各功能模块,实现目标网页数据采集。
可选地,采集驱动模块具体包括:
检测模块,用于检测数据采集流程图对应的各功能节点的结构化参数数据,所述结构化参数数据包括功能模块的节点参数以及控制参数;
缓存模块:用于缓存所述各功能模块至队列中;
调度模块,用于根据所述节点参数的唯一标识ID调度所述队列中对应的功能模块;
执行模块,用于根据所述控制参数执行所述调度后的功能模块。
采用本申请实施例中的网页数据采集方法及系统,通过根据数据采集需求信息,确定数据采集需求对应的功能模块;然后根据功能模块生成带有唯一标识ID的功能节点;其次,根据数据采集流程将所述多个功能节点绘制成数据采集流程图;最后根据数据采集流程图调度执行所述各功能模块,实现目标网页数据采集。本申请可快速绘制出数据采集流程图并运行,实现目标数据采集,避免了重复的设计开发维护工作,提升工作效率,还可以根据需求自由定制、扩展功能模块,灵活性强。解决了现有技术中网页数据采集系统存在定制化程度高采集数据灵活性差的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1中示出了根据本申请实施例的一种网页数据采集方法的步骤流程图;
图2中示出了根据本申请另一实施例的一种网页数据采集方法的数据采集示意图;
图3示出了根据本申请实施例的一种网页数据采集系统的结构示意图;
图4中示出了根据本申请另一实施例的网页数据采集系统的设计流程图;
图5中示出了根据本申请实施例的网页数据采集方法的功能节点生成流程图;
图6中示出了根据本申请实施例的一种网页数据采集方法的绘制流程图;
图7中示出了根据本申请实施例的数据采集流程图的绘制成型示意图。
具体实施方式
在实现本申请的过程中,发明人发现现有的网页数据采集任务,采用的数据采集程序的设计和开发相似度很高,重复的设计开发工作费时费力,降低了数据采集效率。目前,有一些数据采集器虽然简单、快速,但是定制化高、灵活性不足且原理复杂,因此不太实用复杂的网页数据采集,难以满足专业人员的需求。因此,现有的网页数据采集系统存在定制化程度高采集数据灵活性差的问题。需要一种可以根据需求自由定制、扩展功能模块,灵活性强的网页数据采集方法。
针对上述问题,本申请实施例中提供了一种网页数据采集方法及系统,通过根据数据采集需求信息,确定数据采集需求对应的功能模块;然后根据功能模块生成带有唯一标识ID的功能节点;其次,根据能节点文件绘制数据采集流程图;最后根据数据采集流程图驱动运行所述各功能模块,实现目标网页数据采集。本申请可快速绘制出数据采集流程图并运行,实现目标数据采集,避免了重复的设计开发维护工作,提升工作效率,还可以根据需求自由定制、扩展功能模块,灵活性强。解决了现有技术中网页数据采集系统存在定制化程度高采集数据灵活性差的问题。
本申请实施例中的网页数据采集方法及系统,采用声明式数据采集系统集成数据采集需要的各种功能模块,用户通过快速绘制出流程图,运行流程图并驱动相关功能模块,实现目标数据采集,避免了重复的设计开发维护工作,可以把更多的精力放在目标网站和描述性流程图的分析上,提升工作效率。用户可以根据自己的需求自由定制、扩展功能模块,灵活性强。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
图1中示出了根据本申请实施例的一种网页数据采集方法的步骤流程图。
如图1所示,本实施例的网页数据采集方法,具体包括以下步骤:
S101:根据数据采集需求信息,确定数据采集需求对应的功能模块;
S102:读取所述功能模块,并生成带有唯一标识ID的功能节点;
S103:根据数据采集流程将所述多个功能节点绘制成数据采集流程图;
S104:根据所述数据采集流程图调度执行所述各功能模块,实现目标网页数据采集。
具体的,S101中,根据数据采集需求,分析所需要的功能模块,在功能模块库中添加所需要的功能模块,新添加的功能模块可用于以后数据采集中遇到的同类需求,功能模块包括页面获取模块、页面解析模块、队列缓存模块、数据处理模块、链接提取模块、链接分析模块、外部接口模块以及数据存储模块等。可根据需求自行添加新的模块或重载原功能模块。
S102中,根据所述功能模块生成带有唯一标识ID的功能节点,功能节点是流程图的单元组件。具体功能节点生成步骤包括:读取功能模块,检测所述功能模块是否可以实现相应功能;
若可以实现相应功能则检测正常,生成带有ID标识的结构化数据,结构化数据被保存为一个格式化数据文件;生成的格式化数据,形成功能节点菜单,用于绘制流程图。
若不可以实现相应功能则检测异常,生成针对相应功能模块的异常信息文件。异常信息文件用于分析调试。
S103中,根据数据采集流程将所述多个功能节点绘制成数据采集流程图,具体包括:
分析目标网页采集流程及数据结构;
设置所述功能节点,在所述功能节点处设置节点参数;
根据所述采集流程连接所述多个功能节点形成完整的数据采集流程图。
具体的,连接所述多个功能节点形成数据采集流程图时,根据数据类型的不同,采用不同颜色数据流“线”,使不同目录下的功能节点图颜色各异。
S104中,根据所述数据采集流程图驱动运行所述各功能模块,具体包括:
检测数据采集流程图对应的各功能节点生成的结构化参数数据,所述结构化参数数据包括功能模块的节点参数以及控制参数;
缓存所述各功能模块至队列中;
根据所述节点参数的唯一标识ID调度所述队列中对应的功能模块;
根据所述控制参数执行所述调度后的功能模块。
其中,根据控制参数执行调度后的功能模块时,还包括:根据被执行功能模块的唯一标识ID高亮显示所述被执行功能模块。
图2中示出了根据本申请另一实施例的一种网页数据采集方法的数据采集示意图。
如图2所示,网页数据采集方法在绘制数据采集流程图以后还包括调试运行步骤,本实施例的网页数据采集方法即基于流程描述的声明式数据采集方法:主要包括功能节点生成步骤:用于生成功能节点菜单文件,功能节点是流程图的单元组件;流程图绘制步骤:基于目标网页绘制描述性流程图,用于生成结构化参数;调试运行流程图:用于检测流程图和功能模块的异常;运行流程图:用于快速获取目标数据。
具体的,调试运行流程图步骤具体如下:
1)设置所述数据采集流程图调试运行参数,所述调试运行参数包括功能节点运行间隔时间以及功能节点断点设置位置;
具体的,设置功能节点运行时间间隔,在需要停止的功能节点处设置“断点”,程序运行到断点处会自动停止,此时,可以选择继续运行或者单步运行,单步运行就是每次运行完一个节点就停止,输出参数信息或者跳出调试模式。
2)根据调试运行参数运行数据采集流程图中各功能模块;采用调试模式运行流程图,驱动引擎中的识别模块读取调试参数信息,运行到断点处就停止调度下个功能模块,根据当前执行完的节功能模块参数高亮显示此功能节点。
3)调试运行异常时,在异常功能模块处中断,红色高亮显示异常功能点,同时输出异常节点参数和异常信息,弹出信息窗口,显示参数信息和异常信息,根据这些异常信息,就可以定位系统异常并处理异常;
调试运行无异常时,将所述数据采集流程图保存为格式化数据文件,这些格式化数据文件后期重复使用。
面对复杂的网页结构和深层的数据,数据采集前,调试运行流程图是很有必要的,调试运行可以检测流程图、参数和功能模块的异常。调试包括打断点,设置模块运行间隔时间,暂停和继续运行等,在需要打断点的节点处打上“断点”,系统运行到此处会暂停,同时输出此节点参数信息。如出现异常,异常节点高亮,输出参数信息和错误信息,据此定位异常位置,并处理异常。
实施例2
图3示出了根据本申请实施例的一种网页数据采集系统的结构示意图。
如图3所示,本实施例提供的网页数据采集系统具体包括以下结构:
功能模块确定模块10:用于根据数据采集需求信息,确定数据采集需求对应的功能模块;其中,在功能模块库中添加所需要的功能模块,新添加的功能模块可用于以后数据采集中遇到的同类需求,功能模块包括页面获取模块、页面解析模块、队列缓存模块、数据处理模块、链接提取模块、链接分析模块、外部接口模块以及数据存储模块等。可根据需求自行添加新的模块或重载原功能模块。
节点生成器20:用于读取所述功能模块,并生成带有唯一标识ID的功能节点,所述功能节点为绘图所需的。
流程图绘制模块30:用于根据数据采集流程将所述多个功能节点绘制成数据采集流程图;
采集驱动模块40:用于根据所述数据采集流程图调度执行所述各功能模块,实现目标网页数据采集。即,用于根据所述数据采集流程图所形成的结构化数据,调度执行所述各功能模块,实现相应的功能操作,完成数据采集。
图4中示出了根据本申请另一实施例的网页数据采集系统的设计流程图。
如图4所示,本实施例的网页数据采集系统为基于流程描述的声明式数据采集系统,
进一步的,节点生成器20用于生成流程图绘制模块30所需的功能节点菜单文件,流程图绘制模块通过用户交互界面与用户数据交互。
具体的,用户交互界面与用户进行数据信息交互,用户在交互界面绘制数据采集流程图,输入功能模块的节点参数和控制参数,用户还可以通过交互界面调试节点图,运行节点图,保存节点图以及导出预览图片。可以直观观察整个数据采集过程,获取异常信息。
具体的,采集驱动模块40包括驱动引擎,用于接收结构化参数调度执行功能模块。采集驱动模块40具体包括检测模块、缓存模块、调度模块以及执行模块。
其中,检测模块用于检测交互界面传送的数据采集流程图生成的各功能模块的结构化参数数据,其中,结构化参数数据包括功能模块的节点参数以及控制参数,节点参数发送给调度模块,控制参数发送给执行模块。
缓存模块用于缓存各功能模块至队列中,缓存模块在运行流程图时,会读取所有模块缓存到队列中,缓存队列供调度模块调度。
调度模块用于根据节点参数的唯一标识ID到缓存队列中调度对应的功能模块,同时将功能模块的唯一标识ID传递给执行模块。
执行模块用于根据控制参数执行所述调度后的功能模块。同时,执行模块在执行功能模块时,发送唯一标识ID给交互界面,交互界面据此唯一标识ID高亮显示此功能模块节点。实现数据采集可视化,输出面板会显示打印输出信息。
本实施例中包括功能模块库,用于存放各种功能模块,包括页面获取模块,页面解析模块,数据处理模块,数据存储模块等,这些功能模块可重复使用,当遇到新的功能需求,而模块库中不存在对应的功能模块时,可以新增此功能模块,新添加的功能模块可用于下次同类功能需求。
图5中示出了根据本申请实施例的网页数据采集方法的功能节点生成流程图。
如图5所示,流程图形成结构化参数,流程图中的功能节点代表模块库中的功能模块,需要根据模块库中的功能模块来生成对应的功能节点数据文件,首先通过节点生成器20读取功能模块库中功能模块,检测功能是否能正常使用,如果正常实现功能,就生成一条结构化数据,并附上唯一ID标识。这些结构数据保存在格式化数据文件中,交互界面读取此格式化文件,生成相应的功能节点菜单,用于绘制数据采集流程图。
图6中示出了根据本申请实施例的一种网页数据采集方法的绘制流程图。图7中示出了根据本申请实施例的数据采集流程图的绘制成型示意图。
数据采集前,需要分析数据网页的流程和结构,在交互界面绘图区输入节点参数,交互界面会检测节点参数数据类型是否正确,正确则保存在对应的功能节点上,错误则弹出错误信息提示窗口。然后根据采集流程连接各功能节点,形成数据采集流程图。绘制完图后,保存数据,后期可重复使用。如图7所示为成型流程图。
本申请实施例中的网页数据采集方法及系统,旨在减少数据采集程序的重复设计开发,在数据采集过程中不断丰富充实功能模块库,这些模块库在以后的数据采集中可重复使用。在交互界面绘制的流程图即数据采集的流程,并运行流程图,引擎调度功能模块实现相关功能操作。这种流程描述的声明式数据采集系统,简化了数据采集工作,采用可视化的界面使得数据采集流程更加清晰。
声明式数据采集系统除了减少了不必要的大量重复性的工作以外,后期维护方便简捷。通过对底层功能模块进行封装,用户可以添加自定义功能模块,或重载原功能模块;自由组织数据采集的流程范式;并行运行多张流程图。
研发人员在交互界面中按照数据采集流程范式自由组合功能模块、绘制描述性流程图以及运行流程图,最后可快速获取目标数据。同时,描述性流程图可以保存为特定格式的数据文件,或导出预览图片,使图形数据文件后期重复使用便利,只要在交互界面重新打开流程图数据文件,就可以立即使用;修改便捷,当原目标网页的数据和网页结构更新后,只需在原流程图上修改连线重新组合功能模块,然后运行修改后的流程图,就能快速获取更新的数据。最后采用直观的描述性分析流程图,便于用户理解数据采集原理。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行以实现如上任一内容所提供的网页数据采集方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。