掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、爬虫装置、介质及电子设备

文献发布时间:2023-06-19 12:02:28


数据处理方法、爬虫装置、介质及电子设备

技术领域

本发明涉及计算机网络技术领域,具体涉及一种数据处理方法、爬虫装置、介质及电子设备。

背景技术

现有的爬虫工具有例如八爪鱼,其预先爬取了主流网站的数据,用户可以在该工具中选取其需要的网站上的某些类型的数据,例如标题、价格、名称等,该工具主要针对小白用户而设计,优点是简单易用,缺点是只能满足简单需求;此外,还有名称为火车头采集器的爬虫工具,该工具针对有相关爬虫经验的用户设计,用户可以在其上进行一些简单的配置,包括提交URL、表达式等,但同样不能满足较为复杂的需求。

现有的爬虫工具一般针对PC端开发,对PC机上网页数据进行爬取,较少针对APP端的数据进行爬取。当前,由于智能手机等移动设备中APP的广泛应用,APP端的数据量也越来越大,对APP端数据进行爬取的需求也越来越多。

发明内容

因此,存在同时实现对PC端数据和APP端数据进行爬取的通用爬虫引擎的需要。

本发明的目的在于,提供一种数据处理方法,能够使爬虫引擎不受限于所爬取目标对象的类型而统一地管理所爬取的数据。

根据本发明的一个方案,提供了一种数据处理方法,包括:获取与爬虫任务相关的配置数据;获取执行所述爬虫任务下载得到的返回数据;利用从所述配置数据中获取的与所述返回数据的解析相关的信息,对所述返回数据进行解析,获得期望提取的结果数据;确定所述返回数据的类型是否为第一类型,如果否,则将所述结果数据转换为第一类型的结果数据,否则,则不对结果数据进行转换;存储第一类型的结果数据。

根据本发明的另一个方案,还提供一种爬虫装置,包括:配置数据获取模块,其配置为获取与爬虫任务相关的配置数据;返回数据获取模块,其配置为获取执行所述爬虫任务下载得到的返回数据;解析模块,其配置为利用从所述配置数据中获取的与所述返回数据的解析相关的信息,对所述返回数据进行解析,获得期望提取的结果数据;转换模块,其配置为确定所述返回数据的类型是否为第一类型,如果否,则将所述结果数据转换为第一类型的结果数据,否则,不对结果数据进行转换;存储模块,其配置为存储第一类型的结果数据。

根据本发明的再一个方案,提供了一种非临时性计算机可读介质,其上存储有计算机可执行代码,所述计算机可执行代码在被处理器执行时实现所述的方法。

根据本发明的还一个方案,提供了一种电子设备,包括处理器、存储器以及其上存储的计算机可执行代码,当所述处理器执行所述计算机可执行代码时实现所述的方法。

根据本发明的方案,能够不受限于所爬取目标对象的类型而统一地管理所爬取的数据,便于对所爬取数据的后续管理、维护及各种处理。

附图说明

在不一定按比例绘制的附图中,相同的附图标记可以在类型的视图中描述相似的部件。附图大体上通过举例而不是限制的方式示出各种实施例,并且与说明书以及权利要求书一起用于对所公开的实施例进行说明。在适当的时候,在所有附图中使用相同或相似的附图标记指代同一或相似的部分。这样的实施例是例证性的,而并非旨在作为本系统或方法的穷尽或排他实施例。

图1是本发明实施例的描述本发明实施例的一种数据处理方法的流程示意图。

图2是本发明实施例的描述本发明另一实施例的一种数据处理方法的流程示意图。

图3是本发明实施例的描述了本发明再一实施例的一种数据处理方法的流程示意图。

图4是本发明实施例的描述了本发明实施例的一种爬虫装置的结构示意图。

具体实施方式

此处参考附图描述本公开的各种方案以及特征。通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本发明的这些和其它特性将会变得显而易见。

本说明书可使用词组“在一个实施例中”、“在一些实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本公开的相同或类型实施例中的一个或多个。注意的是,在说明书全文中,相同或相近的附图标记指代相同或相似的元件,并省略不必要的重复描述。此外,具体实施例中,以单数形式出现的元件并不排除可以以多个(复数个)形式出现。

如图1所示,下面描述本发明实施例的一种数据处理方法100,该方法包括步骤:

101,获取与爬虫任务相关的配置数据,即爬虫配置数据。用户可以例如通过应用本发明实施例的爬虫装置的前端请求配置界面输入请求URL等各种参数和执行爬虫任务所需信息,并且用户所输入的配置数据可以存储到数据库中。

102,获取爬虫任务下载得到的返回数据。应用了本发明方法实施例的爬虫装置具有下载引擎,其执行爬虫任务,对请求URL进行下载,可以得到返回数据,也就是,对请求URL访问页面下载得到的数据(或称下载数据)。下载引擎为一般爬虫框架都带有的组件,其实现细节不在本文赘述。

103,确定所述返回数据的类型,如果是第一类型,则在步骤104,对返回数据进行解析,生成期望提取的结果数据,也就是第一类型的结果数据,例如针对JSON类型,使用jsonPath表达式解析返回数据,之后进入到步骤106;如果是第二类型,则在步骤105,解析返回数据,生成结果数据,该结果数据为第二类型的结果数据,例如HTML类型返回数据可用xPath类型表达式进行解析,生成K/V形式的结果数据,并将所提取的第二类型的结果数据转换为第一类型的结果数据,之后进入到步骤106。

在步骤103,可以利用返回数据的特征或者第三方工具判断返回数据的具体类型。例如,可以利用诸如JSONUtil的第三方工具类判断数据是否为JSON类型。

在步骤104和步骤105,可以利用从配置数据中获取的与返回数据的解析相关的信息,对所述返回数据进行解析,获得期望提取的结果数据。与返回数据的解析相关的信息例如用于解析返回数据的表达式或需要从结果数据中提取的项目名称及值(或者说,键名称及值)。在一个实施例中,根据具体的业务需求,用户可以通过在应用本发明实施例的爬虫装置的前端配置界面中输入解析相关的表达式,从返回数据中提取所需的结果数据,摒弃不需要的其他数据。

106,存储第一类型的结果数据。例如,可以将结果数据存储至数据库中。

当实现同时执行对PC端数据和APP端数据进行爬取的任务的通用爬虫引擎(装置)时,由于PC端网页数据的类型一般为HTML类型,而APP端数据的类型一般为JSON类型,返回数据最终保存到数据库中时,如果保存到数据库的格式不统一,将带来后续管理和维护上的麻烦。例如,在提取期望的数据字段或对数据字段进行处理时,针对JSON类型数据需写一套数据提取或处理代码,针对html格式的需写另一套提取或处理代码,如果后续还有其他第三种格式,就需要再写,造成代码冗余,且费时费力。利用本发明实施例的数据处理方法,能够不受限于所爬取目标对象的类型而统一地管理所爬取的数据,便于对所爬取数据的后续管理、维护及各种处理。

下面描述本发明另一实施例的一种数据处理方法200,如图2所示,该方法包括步骤:

201,获取与爬虫任务相关的配置数据。

202,从配置数据中获取对待爬取目标的请求信息,根据请求信息封装生成完整的请求。例如,请求信息包括请求URL、请求方法、请求头、请求参数,根据请求信息封装生成http请求。

203,下载引擎依据封装生成的完整请求下载相应页面的数据,获取返回数据。返回数据即下载引擎依据请求URL下载的数据。请求URL可以通过用户输入而获取,也可以由下载引擎从待请求队列中获取,待请求队列中包含一系列需要爬取的请求URL。

204,确定所述返回数据的类型,如果是第一类型,则在步骤205对返回数据进行解析,获得结果数据,之后进入步骤208;如果是第二类型,则在步骤206,对返回数据进行解析,获得结果数据,并将该第二类型的结果数据转换为第一类型的结果数据,例如第二类型的数据为HTML类型的情况下,将生成的K/V形式的结果数据结构化为JSON数据形式的结果数据,然后进入步骤208;如果是混合类型,例如第二类型数据中包含第一类型数据,即本例中HTML类型数据中包含JSON类型数据,则在步骤207提取返回数据中的第一类型数据,即JSON数据后,对提取出的返回数据进行解析,得到第一类型的结果数据,之后进入步骤208。

可以从所述配置数据中获取返回数据的类型,例如由用户例如通过应用了本发明实施例的爬虫装置的前端请求配置界面输入返回数据的类型作为配置数据。即,用户可以指定或选定返回数据的类型为JSON数据类型、HTML数据类型或混合数据类型等,从而可以基于用户的指定或选定来确定返回数据的类型。

208,将第一类型的结果数据存储到数据库中。

在一个实施例中,当返回数据为混合类型,例如第二类型数据中包含第一类型数据,且根据用户的业务需求,仅需其中的第一类型数据时,应用了本发明实施例的爬虫装置将提取返回数据中的第一类型数据,并且对返回数据中的第一类型数据进行相应的解析操作,获得结果数据。也就是,在该实施例中,用户可以指定或选定返回数据为第二类型中包含的第一类型,从而应用了本发明实施例的爬虫装置可以进行相应的操作。

如图3所示,描述了本发明另一实施例的一种数据处理方法300。在该实施例中,通过唯一标识,避免了数据的重复存储。与前述实施例不同的是,该方法实施例中,除方法100或方法200的各步骤外,还增加了步骤302,从所述配置数据中获取唯一标识表达式,并在步骤304中,基于所述唯一标识表达式,确定所述返回数据的唯一标识,之后在步骤306中,将唯一标识封装到生成/转换后生成的第一类型的结果数据中。

在该方法实施例中,当应用了本发明实施例的爬虫装置执行对目标网站的后续的爬取任务时,由于结果数据中封装了唯一标识,在将结果数据存储到数据库中之前,可以将该结果数据的唯一标识在数据库中进行查询和比对,如果出现查询到数据库中存在相同的唯一标识,则说明该下载的结果数据已经存储在数据库中,无需进行重复存储。本发明实施例减少了现有技术中对同一目标网站多次爬取数据时重复存储数据带来去重的麻烦和耗时。

在一些实施例中,还包括(未图示)从所述配置数据中获取所述唯一标识的来源信息,并基于唯一标识的来源信息,利用所述唯一标识表达式从获取唯一标识。当唯一标识的来源为第一来源,例如,第一来源为结果数据,此时,利用唯一标识表达式从结果数据中取得唯一标识,并且将唯一标识封装在生成的结果数据中。例如结果数据中包含{"id","123"},唯一标识是id的值,则可以通过表达式$.id取出唯一标识为123。当唯一标识的来源为第二来源,例如第二来源为url,此时从url中取出唯一标识的值,例如url为http://test.com?id=123,唯一标识即id的值,即123,此时唯一标识表达式为id。

在另一些实施例中,不存在唯一标识的来源信息,在此情况下,可以基于唯一标识表达式的特征来自动识别和判断从唯一标识的来源。例如,以$开头,则标明是从结果数据中取值,如果不是,则可以从url中取值。

如图4所示,描述了本发明再一实施例的一种爬虫装置400。该装置400包括配置数据获取模块402、返回数据获取模块404、解析模块406、转换模块408以及存储模块410。

配置数据获取模块402配置为获取与爬虫任务相关的配置数据。返回数据获取模块404配置为获取执行爬虫任务下载得到的返回数据。解析模块406配置为利用从所述配置数据中获取的与所述返回数据的解析相关的信息,对返回数据进行解析,获得期望提取的结果数据。转换模块408配置为确定返回数据的类型是否为第一类型,如果否,则将所述结果数据转换为第一类型的结果数据,否则,不对结果数据进行转换。存储模块410配置为存储第一类型的结果数据。例如,将结果数据存储至数据库中。

本发明实施例的爬虫装置可以实现为通用爬虫引擎,即,可以同时爬取APP端数据和PC端数据,并且本发明实施例的爬虫装置能够不受限于所爬取目标对象的类型(例如APP端常用的JSON型或PC端常用的html型,或混合类型、或其他类型等等)而统一地管理所爬取的数据,便于对所爬取数据的后续管理、维护及各种处理。

在一些实施例中,装置400还可以包括唯一标识确定模块412和封装模块414。唯一标识确定模块412配置为:从配置数据中获取唯一标识表达式,并基于唯一标识表达式,确定返回数据的唯一标识。封装模块414配置为将唯一标识封装在第一类型的结果数据中。

在一些实施例中,转换模块408可以从配置数据中获取返回数据的类型从而确定返回数据是否是第一类型。

在一些实施例中,装置400还可以包括来源信息获取模块(未图示)。来源信息获取模块配置为从所述配置数据中获取唯一标识的来源信息,从而唯一标识确定模块412可以基于唯一标识的来源信息,利用唯一标识表达式从获取唯一标识。

在一个实施例中,数据类型包括第一类型和第二类型。第一类型为JSON类型,所述第二类型为html类型。

在另一个实施例中,数据类型包括第一类型、第二类型以及第二类型包含第一类型的混合数据类型。并且,解析模块406进一步配置为当所述数据类型为所述混合数据类型时,提取所述返回数据中为第一类型的返回数据,对提取出的返回数据进行所述解析。

对于本发明装置实施例的未详尽描述之处,可参考对应的方法实施例。

本发明一个实施例中,还提供了一种非临时性计算机可读介质,其上存储有计算机可执行代码,计算机可执行代码在被处理器执行时能够实现上述的任一方法实施例。计算机可读介质可以包括磁性的、半导体的、磁带的、光学的、可移动的、不可移动的或其他类型的计算机可读介质或计算机可读存储设备。例如,如所公开的,计算机可读介质可以是其上存储有计算机指令的存储设备或存储器模块。在一些实施例中,计算机可读介质可以是其上存储有计算机指令的盘或闪存驱动器。

本发明实施例还提供一种电子设备,包括处理器、存储器以及其上存储的计算机可执行代码。当处理器执行计算机可执行代码时实现上述的任一方法实施例及其变形。电子设备例如为服务器、桌面计算机等,并且可适用于本发明实施例的数据处理方法。

这里描述了各种操作或功能,其可以被实现为软件代码或指令或被定义为软件代码或指令。这样的内容可以是可直接执行的源代码或差异代码(“增量”或“块”代码)(“对象”或“可执行”形式)。软件代码或指令可以存储在计算机可读存储介质中,并且当被执行时,可以使机器执行所描述的功能或操作,并且包括用于以机器可访问的形式存储信息的任何机构(例如,计算设备,电子系统等),诸如可记录或不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质,闪存设备等)。结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件单元,或者二者的结合来实施。

与“包括”、“包含”或“特征在于”同义的术语“包括”是非排他性的或者开放性的,不排除另外的、未叙述的要素或方法步骤。“包括”是权利要求语言中使用的本领域的术语,其意味着所命名的要素是必要的,但是能够添加其他要素并且仍然形成权利要求书的范围内的结构。

如本文所使用的,当在实体列表的上下文中使用术语“和/或”时,是指单独或组合出现的实体。因此,例如,短语“A、B、C、和/或D”分别包括A、B、C和D,但也包括A、B、C和D的任何和所有组合和子组合。

以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

相关技术
  • 数据处理方法、爬虫装置、介质及电子设备
  • 一种反爬虫的数据处理方法、装置、系统及存储介质
技术分类

06120113148421