页面数据提取方法、装置、存储介质及电子设备与流程

文档序号:16069166发布日期:2018-11-24 12:59阅读:204来源:国知局

本公开涉及计算机技术领域,具体地,涉及一种页面数据提取方法、装置、存储介质及电子设备。

背景技术

在数据采集(集成)业务中,常需要提取html(hypertextmarkuplanguage,超级文本标记语言)页面中的数据,并将提取出的数据封装成标准格式,如json(javascriptobjectnotation,js对象简谱)、xml(extensiblemarkuplanguage,可扩展标记语言)等格式,然后输出供其他应用使用。

目前,提取html页面中的数据的方式主要有非可视化提取方式以及可视化提取方式。非可视化提取方式即为:由用户提供待提取数据在指定html页面中的特征值,然后计算数据的特征路径,再基于特征路径进行数据提取。可视化提取方式即为:用户直接在html页面中操作,填充网页信息提取动作所需的配置参数,对提取动作进行操作生成提取规则,再基于提取规则进行数据提取。

然而,对于目前的非可视化提取方式而言,流程较为繁琐,且特征值有可能会出现在同一页面中的多个位置,存在干扰,需要进行二次修正来找到所需的元素位置。对于目前的可视化提取方式而言,虽然用户可以直接在html页面中定位要提取的数据,但提取动作定义较为复杂,配置容易出错,且需要操作人员具备较强的html语言功底,人工成本较高,效率低下。



技术实现要素:

本公开的目的是提供一种页面数据提取方法、装置、存储介质及电子设备,能够提升从html页面中提取数据的便捷性。

根据本公开实施例的第一方面,提供一种页面数据提取方法,包括:

接收用户输入的提取数据的属性名称以及提取模式,所述提取模式包括精确提取模式及联想提取模式;

根据所述提取模式以及所述用户在html页面中选择的目标网页元素,确定元素位置特征;

按照所述元素位置特征提取所述html页面中的网页数据;

根据所述属性名称及提取的网页数据生成输出数据进行输出。

可选的,所述用户输入的提取模式为所述精确提取模式,根据所述提取模式以及所述用户在html页面中选择的目标网页元素,确定元素位置特征,包括:

生成所述目标网页元素对应的文档对象模型dom(文档对象模型,documentobjectmodel)节点的层叠样式表css(层叠样式表,cascadingstylesheets)选择器,以确定所述元素位置特征。

可选的,所述用户输入的提取模式为所述联想提取模式,根据所述提取模式以及所述用户在html页面中选择的目标网页元素,确定元素位置特征,包括:

确定所述用户在所述html页面中选择的第一目标网页元素和第二目标网页元素;

生成所述第一目标网页元素对应的dom节点的css选择器,记为第一位置字符串;

生成所述第二目标网页元素对应的dom节点的css选择器,记为第二位置字符串;

从字符串尾部开始比对所述第一位置字符串与所述第二位置字符串,确定第一处字符不同的目标位置;

从所述第一位置字符串中移除所述目标位置对应的选择器表达式,得到第三位置字符串;

根据所述第三位置字符串,确定所述元素位置特征。

可选的,按照所述元素位置特征提取所述html页面中的网页数据,包括:

接收所述用户输入的提取数据的元素属性;

按照所述元素位置特征及所述元素属性提取所述html页面中的网页数据。

可选的,根据所述属性名称及提取的网页数据生成输出数据进行输出,包括:

根据提取的网页数据的属性信息,配置输出数据格式;

根据所述属性名称及提取的网页数据,并按照所述输出数据格式,生成输出数据进行输出。

根据本公开实施例的第二方面,提供一种页面数据提取装置,包括:

接收模块,用于接收用户输入的提取数据的属性名称以及提取模式,所述提取模式包括精确提取模式及联想提取模式;

确定模块,用于根据所述提取模式以及所述用户在html页面中选择的目标网页元素,确定元素位置特征;

提取模块,用于按照所述元素位置特征提取所述html页面中的网页数据;

输出模块,用于根据所述属性名称及提取的网页数据生成输出数据进行输出。

可选的,所述接收模块接收用户输入的提取模式为所述精确提取模式,所述确定模块包括:

第一生成模块,用于生成所述目标网页元素对应的文档对象模型dom节点的层叠样式表css选择器,以确定所述元素位置特征。

可选的,所述接收模块接收用户输入的提取模式为所述联想提取模式,所述确定模块包括:

第一确定子模块,用于确定所述用户在所述html页面中选择的第一目标网页元素和第二目标网页元素;

第二生成模块,用于生成所述第一目标网页元素对应的dom节点的css选择器,记为第一位置字符串;

第三生成模块,用于生成所述第二目标网页元素对应的dom节点的css选择器,记为第二位置字符串;

第二确定子模块,用于从字符串尾部开始比对所述第一位置字符串与所述第二位置字符串,确定第一处字符不同的目标位置;

移除模块,用于从所述第一位置字符串中移除所述目标位置对应的选择器表达式,得到第三位置字符串;

第三确定子模块,用于根据所述第三位置字符串,确定所述元素位置特征。

可选的,所述提取模块包括:

接收子模块,用于接收所述用户输入的提取数据的元素属性;

提取子模块,用于按照所述元素位置特征及所述元素属性提取所述html页面中的网页数据。

可选的,所述输出模块包括:

配置模块,用于根据提取的网页数据的属性信息,配置输出数据格式;

输出子模块,用于根据所述属性名称及提取的网页数据,并按照所述输出数据格式,生成输出数据进行输出。

根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述方法的步骤。

根据本公开实施例的第四方面,提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面中任一项所述方法的步骤。

通过上述技术方案,用户可以直接输入要提取的数据的属性名称以及提取模式(包括精确提取模式及联想提取模式),那么用户在html页面中可视化选择了目标网页元素后,设备便可基于用户的配置进行网页数据的提取,然后生成输出数据进行输出。这样,无需用户进行复杂的编程操作来定义提取动作,操作起来较为简单,另一方面,本公开提供了不同的提取模式可供用户选择,适用于单个数据的提取以及多个有关联的数据的提取,能够满足用户不同的数据提取需求。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据一示例性实施例示出的一种页面数据提取方法的流程图;

图2是根据一示例性实施例示出的一种列表数据页面的示意图;

图3是根据一示例性实施例示出的一种精确提取模式下的元素位置特征计算流程图;

图4是根据一示例性实施例示出的一种联想提取模式下的元素位置特征计算流程图;

图5是根据一示例性实施例示出的一种页面数据提取方法的另一流程图;

图6是根据一示例性实施例示出的一种页面数据提取装置的框图;

图7是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

图1是根据一示例性实施例示出的一种页面数据提取方法的流程图,如图1所示,该页面数据提取方法可以应用于电子设备中,包括以下步骤。

步骤s11:接收用户输入的提取数据的属性名称以及提取模式,提取模式包括精确提取模式及联想提取模式;

步骤s12:根据提取模式以及用户在html页面中选择的目标网页元素,确定元素位置特征;

步骤s13:按照元素位置特征提取html页面中的网页数据;

步骤s14:根据属性名称及提取的网页数据生成输出数据进行输出。

本公开实施例中,提取模式可以包括精确提取模式及联想提取模式,精确提取模式下,仅针对用户指定位置的数据进行提取;联想模式下,会针对用户指定数据以及同布局的其他数据进行提取。比如,请参见图2所示的网页表格,通过联想提取模式可以提取“类型”中属于同布局的“建议”、“求助”、“投诉”、“咨询”等数据。

本公开实施例中,用户可以直接配置提取数据的提取规则,而无需通过复杂的程序语言来定义,提取规则可以包括需要提取的数据的属性名称、提取模式等等。例如,用户可以直接点击页面中提供的“新增提取规则”按钮,在弹出的对话框中配置提取数据的属性名称、选择提取模式等。比如,配置属性名称为“作者”,选择提取模式为精确提取模式。

用户可以直接在html页面中选择要提取的目标网页元素,当然,本公开实施例对于选择目标网页元素的操作以及配置提取规则的操作的执行顺序不作限定。

在完成提取规则的配置以及目标网页元素的选取后,便可进行元素位置特征的确定,元素位置特征能够用来表征要提取的数据的位置。针对用户选择的提取模式的不同,数据提取的方式有所不同,以下将分别对不同提取模式的元素位置特征确定方式进行说明。

可选的,用户输入的提取模式为精确提取模式,根据提取模式以及用户在html页面中选择的目标网页元素,确定元素位置特征,包括:

生成目标网页元素对应的文档对象模型dom节点的层叠样式表css选择器,以确定元素位置特征。

css选择器可以用来表达元素的位置,在精确提取模式下,计算出用户选择的目标网页元素的css选择器即可得到该目标网页元素的位置。可以通过图3所示的方法流程来计算目标网页元素的css选择器。如图3所示,给定dom元素,即用户选择目标网页元素,然后判定该dom元素是否为body元素,也即是判定是否为根节点,如果是的话直接返回结果css选择器即可,如果不是,则计算位于dom元素前面的兄弟节点的个数,然后生成该dom元素的css选择器,通过“[元素标签]:nth-child(前面的兄弟节点个数+1)”这样的字符串来表示,然后构建当前的结果css选择器,即使用符号“>”将之前生成的css选择器连接起来(如果有),之后令dom元素=dom元素的父元素,再次执行生成css选择器以及构建结果css选择器的步骤,直到找到根节点为止,返回结果css选择器,即可得到元素位置特征。

可选的,用户输入的提取模式为联想提取模式,根据提取模式以及用户在html页面中选择的目标网页元素,确定元素位置特征,包括:

确定用户在html页面中选择的第一目标网页元素和第二目标网页元素;生成第一目标网页元素对应的dom节点的css选择器,记为第一位置字符串;生成第二目标网页元素对应的dom节点的css选择器,记为第二位置字符串;从字符串尾部开始比对第一位置字符串与第二位置字符串,确定第一处字符不同的目标位置;从第一位置字符串中移除目标位置对应的选择器表达式,得到第三位置字符串;根据第三位置字符串,确定元素位置特征。

对于联想提取模式,用户需要选择至少两个目标网页元素,这样可以找出与用户选择的两个目标网页元素具有相同布局的其他元素,有利于直观提取列表类型的数据,适用于同一类数据具有多条记录的场景。

如图4所示,联想提取模式下,以提取列表类型的数据为例,按照图3的方式计算任意元素(比如用户选择的第一目标网页元素)的css选择器,声明为字符串s1(第一位置字符串),再计算另外的任意元素(比如用户选择的第二目标网页元素)的css选择器,声明为字符串s2(第二位置字符串),让后从尾部开始比对s1与s2,直到找到第一处字符不同的目标位置,从s1中删除该目标位置对应的选择器表达式,即:nth-child表达式,最后返回删除表达式后的s1(即第三位置字符串)。第三位置字符串即为元素位置特征,能够找到与第一目标元素及第二目标元素属于同布局的其他元素。例如,如图2所示的列表,第一目标元素对应的数据为“类型”下的“建议”,第二目标元素对应的数据为“类型”下的“求助”,那么按照图4中所示的方法得到的元素位置特征能够定位“类型”下的其他数据,比如包括“投诉”、“咨询”,等等。

可见,本公开创造性提供了一种能够提取列表类型数据的方式,适用于同一类数据具有多条记录的场景,满足用户不同的数据提取需求。

可选的,按照元素位置特征提取html页面中的网页数据,包括:

接收用户输入的提取数据的元素属性;按照元素位置特征及元素属性提取html页面中的网页数据。

元素属性比如包括文本属性、链接属性,等等。由于同一dom元素下可能包含多个信息,那么可以通过元素属性来区分究竟要提取哪个信息,有利于用户准确定位要提取的数据。

可选的,根据属性名称及提取的网页数据生成输出数据进行输出,包括:

根据提取的网页数据的属性信息,配置输出数据格式;根据属性名称及提取的网页数据,并按照输出数据格式,生成输出数据进行输出。

输出数据格式比如包括json格式、xml格式等等。可以根据提取的网页数据的属性信息来配置合适的格式,比如提取的数据是“出版日期”,那么采用json的格式生成输出数据。通过这样的方式可以较为方便地输出格式合理的数据。

请参见图5,以下将通过完整的实施例对本公开的技术方案进行说明。

步骤s501:新增提取规则,由用户点击“新增”按钮;

步骤s502:配置提取数据属性名称,用户输入属性名称;

步骤s503:配置提取模式,包括精确提取模式和联想提取模式;

步骤s504:用户在html页面中可视化选择规则相关元素(即目标网页元素);

步骤s505:基于提取模式计算元素位置特征,比如精确提取模式采用图3所示的方式计算元素位置特征,联想提取模式采用图4所示的方式计算元素位置特征;

步骤s506:配置提取的元素属性(文本、链接等),即用户配置要提取的数据的元素属性;

步骤s507:是否完成提取规则配置,是的话执行步骤s508,否的话返回步骤s501;

步骤s508:配置输出数据格式(比如json、xml等),可以根据数据的属性信息进行格式的自动配置;

步骤s509:给定同模式html页面,即,规则配置完成后,可以针对与进行配置的html页面具有相同模式的其他html页面,进行相同规则的数据提取;

步骤s510:基于提取规则生成输出数据。

请参见图6,基于同一发明构思,本公开实施例提供一种页面数据提取装置600,该装置600可以包括:

接收模块601,用于接收用户输入的提取数据的属性名称以及提取模式,所述提取模式包括精确提取模式及联想提取模式;

确定模块602,用于根据所述提取模式以及所述用户在html页面中选择的目标网页元素,确定元素位置特征;

提取模块603,用于按照所述元素位置特征提取所述html页面中的网页数据;

输出模块604,用于根据所述属性名称及提取的网页数据生成输出数据进行输出。

可选的,所述接收模块601接收用户输入的提取模式为所述精确提取模式,所述确定模块602包括:

第一生成模块,用于生成所述目标网页元素对应的文档对象模型dom节点的层叠样式表css选择器,以确定所述元素位置特征。

可选的,所述接收模块601接收用户输入的提取模式为所述联想提取模式,所述确定模块602包括:

第一确定子模块,用于确定所述用户在所述html页面中选择的第一目标网页元素和第二目标网页元素;

第二生成模块,用于生成所述第一目标网页元素对应的dom节点的css选择器,记为第一位置字符串;

第三生成模块,用于生成所述第二目标网页元素对应的dom节点的css选择器,记为第二位置字符串;

第二确定子模块,用于从字符串尾部开始比对所述第一位置字符串与所述第二位置字符串,确定第一处字符不同的目标位置;

移除模块,用于从所述第一位置字符串中移除所述目标位置对应的选择器表达式,得到第三位置字符串;

第三确定子模块,用于根据所述第三位置字符串,确定所述元素位置特征。

可选的,所述提取模块603包括:

接收子模块,用于接收所述用户输入的提取数据的元素属性;

提取子模块,用于按照所述元素位置特征及所述元素属性提取所述html页面中的网页数据。

可选的,所述输出模块604包括:

配置模块,用于根据提取的网页数据的属性信息,配置输出数据格式;

输出子模块,用于根据所述属性名称及提取的网页数据,并按照所述输出数据格式,生成输出数据进行输出。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图7是根据一示例性实施例示出的一种电子设备700的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(i/o)接口704,以及通信组件705中的一者或多者。

其中,处理器701用于控制该电子设备700的整体操作,以完成上述的页面数据提取方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件705可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的页面数据提取方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的页面数据提取方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的页面数据提取方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1