用于爬虫的数据处理方法及装置与流程

文档序号:11155119阅读:434来源:国知局
用于爬虫的数据处理方法及装置与制造工艺

本发明涉及互联网领域,具体而言,涉及一种用于爬虫的数据处理方法及装置。



背景技术:

在互联网中,网站上的某些新闻内容或者本文内容过于冗长。网站为了方便用户阅读,经常会引入分页机制。例如,一篇文章分为3页展示给阅读者、一个BBS主题下有多页相关的帖子信息。

当爬虫程序在遇到上述具有分页机制的互联网资源时,通常会对所有的分页信息进行爬取。例如,一篇小说被分为30页,爬虫程序会对每一页进行爬取,共爬取30次;一个建立时间较长的论坛主题下的一篇300页的帖子文章,爬虫程序会对300页都进行爬取。

在实际应用当中,具有分页机制的互联网资源中,往往有利用价值的内容只存在于前面几页当中,而现有的爬虫程序会将上述互联网资源中的每个分页都进行爬取。现有的爬虫程序对具有分页机制的互联网资源中的所有分页页面的全部进行爬取,这种方法存在如下缺点:

1、把指定互联网资源中的所有分页进行完全爬取,将会极大地浪费服务器资源。

2、无法根据不同的互联网资源的类型,以不同的方式进行爬取,导致爬取的灵活度不足。例如,在面对具有分页机制的新闻文章时需要爬取所有的分页,对于具有分页机制的论坛的一个主题时,只需要爬取前几页即可。

针对上述由于对具有分页机制的网页进行全部爬取,导致的服务器资源浪费的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种用于爬虫的数据处理方法及装置,以至少解决由于对具有分页机制的网页进行全部爬取,导致的服务器资源浪费的技术问题。

根据本发明实施例的一个方面,提供了一种用于爬虫的数据处理方法,包括:获 取待爬取任务信息,其中,待爬取任务信息中至少包括待爬取任务对应的预设分页数量;将待爬取任务的第一分页作为当前分页,对当前分页执行如下步骤,直到与当前分页对应的当前已爬取分页数量等于预设分页数量为止:爬取当前分页,累计当前已爬取分页数量;将当前已爬取分页数量与预设分页数量进行比较;当当前已爬取分页数量小于预设分页数量时,将当前分页的下一分页作为当前分页。

进一步地,获取待爬取任务信息包括:获取待爬取任务的任务地址;获取待爬取任务对应的任务类型;根据任务类型,确定与任务地址对应的预设分页数量。

进一步地,将当前分页的下一分页作为当前分页,包括:对当前分页对应的已爬取地址信息进行解析,确定与待爬取任务的下一分页对应的待爬取地址信息;将待爬取地址信息对应的下一分页,作为待爬取的当前分页。

进一步地,对当前分页对应的已爬取地址信息进行解析,确定与待爬取任务的下一分页对应的待爬取地址信息,包括:获取待爬取任务的当前分页对应的已爬取地址信息;按照预定解析规则对已爬取地址信息进行解析,确定在已爬取地址信息中用于记载页码信息的字符位置;对字符位置中的字符进行替换,生成待爬取任务的下一分页对应的待爬取地址信息。

根据本发明实施例的另一方面,还提供了一种用于爬虫的数据处理装置,包括:第一获取模块,用于获取待爬取任务信息,其中,待爬取任务信息中至少包括待爬取任务对应的预设分页数量;执行模块,用于将待爬取任务的第一分页作为当前分页,对当前分页执行如下步骤,直到与当前分页对应的当前已爬取分页数量等于预设分页数量为止:爬取模块,用于爬取当前分页,累计当前已爬取分页数量;比较模块,用于将当前已爬取分页数量与预设分页数量进行比较;处理模块,用于当当前已爬取分页数量小于预设分页数量时,将当前分页的下一分页作为当前分页。

进一步地,装置还包括:第二获取模块,用于获取待爬取任务的任务地址;第三获取模块,用于获取待爬取任务对应的任务类型;确定模块,用于根据任务类型,确定与任务地址对应的预设分页数量。

进一步地,处理模块,包括:第一子确定模块,用于对当前分页对应的已爬取地址信息进行解析,确定与待爬取任务的下一分页对应的待爬取地址信息;子处理模块,用于将待爬取地址信息对应的下一分页,作为待爬取的当前分页。

进一步地,子处理模块包括:子获取模块,用于获取待爬取任务的当前分页对应的已爬取地址信息;第二子确定模块,用于按照预定解析规则对已爬取地址信息进行解析,确定在已爬取地址信息中用于记载页码信息的字符位置;子生成模块,用于对 字符位置中的字符进行替换,生成待爬取任务的下一分页对应的待爬取地址信息。

在本发明实施例中,采用获取待爬取任务信息,其中,待爬取任务信息中至少包括待爬取任务对应的预设分页数量;将待爬取任务的第一分页作为当前分页,对当前分页执行如下步骤,直到与当前分页对应的当前已爬取分页数量等于预设分页数量为止:爬取当前分页,累计当前已爬取分页数量;将当前已爬取分页数量与预设分页数量进行比较;当当前已爬取分页数量小于预设分页数量时,将当前分页的下一分页作为当前分页的方式,从而达到了对具有分页机制的互联网资源的爬取页数进行控制的目的,进而解决了由于对具有分页机制的网页进行全部爬取,导致的服务器资源浪费的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种用于爬虫的数据处理方法的流程示意图;

图2是根据本发明实施例的一种可选的用于爬虫的数据处理方法的流程示意图;

图3是本发明实施例一种用于爬虫的数据处理方法在实际应用当中的流程示意图;

图4是根据本发明实施例的一种用于爬虫的数据处理装置的示意图;以及

图5是根据本发明实施例的一种可选的用于爬虫的数据处理装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方 法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种用于爬虫的数据处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的用于爬虫的数据处理方法的流程图,如图1所示,该方法包括如下步骤:

步骤S21,获取待爬取任务信息,其中,待爬取任务信息中至少包括待爬取任务对应的预设分页数量。

步骤S23,将待爬取任务的第一分页作为当前分页,对当前分页执行如下步骤,直到与当前分页对应的当前已爬取分页数量等于预设分页数量为止:

步骤S231,爬取当前分页,累计当前已爬取分页数量;

步骤S233,将当前已爬取分页数量与预设分页数量进行比较;

步骤S235,当当前已爬取分页数量小于预设分页数量时,将当前分页的下一分页作为当前分页。

具体的,在通过网络爬虫对互联网资源进行爬取时,经常会遇到存在具有分页机制的互联网资源。而在这些互联网资源的分页中,并不是每一个分页都需要对其进行爬取。因此,通过步骤S21至步骤S29,可以在获取待爬取任务信息的时候,获取任务地址以及与待爬取任务对应的分页数量。在对待爬取任务进行爬取时,通过对该待爬取任务的翻页数量进行累计。并在对下一分页进行爬取之前,将翻页数量与分页数量进行比对,从而确定是否对待爬取任务的下一分页页面进行爬取。从而达到了对具有分页机制的互联网资源的爬取页数进行控制的目的,进而解决由于对具有分页机制的网页进行全部爬取,导致的服务器资源浪费的技术问题。

作为一种可选的实施方式,以待爬取任务对应的分页数量为3页为例进行说明。当在对待爬取任务的第一个分页进行爬取后,将与所述待爬取任务对应的用于记录已爬取分页数量的计数器做累加处理。然后,将已爬取分页数量与获取到的分页数量进行比对,当已爬取分页数量小于3页时,将下一分页进行爬取。当在对待爬取任务的第三个分页进行爬取后,将当前已爬取分页数量与获取到的分页数量进行比对。当一爬去分页数量等于3页时,终止对当前待爬取任务的爬取进程,结束对当前待爬取任 务的爬取。

作为一种可选的技术方案,如图2所示,在步骤S21获取待爬取任务信息中,可以包括:

步骤S11,获取所述待爬取任务的任务地址。

步骤S13,获取所述待爬取任务对应的任务类型。

步骤S15,根据所述任务类型,确定与所述任务地址对应的预设分页数量。

具体的,在对互联网资源进行爬取时,由于互联网资源的类型不同,可以根据各类型互联网资源的特点,为其设置不同的分页数量。通过步骤S11至步骤S15,可以在获取待爬取任务的任务地址的时候,同时获取待爬取任务对应的任务类型。通过任务类型,确定与任务类型对应的分页数量。利用任务地址和与其对应的分页数量,生成任务列表。

在实际应用当中,互联网资源可以包括资讯类网站、论坛类网站等多种类型,在对不同类型的网站进行爬取时,可以为其设置不同的分页数量。例如,在对资讯类网站进行爬取时,由于资讯类网站为了方便用户阅读,加快页面的加载速度,通常会将资讯内容按照其长度分为若干页。因此,在对资讯类网站进行爬取时,需要对记载有资讯内容的全部分页进行爬取,即可以将分页数量设置为资讯内容的全部分页数量。在对论坛类网站及进行爬取时,由于论坛类网站的有效内容通常存在于分页的前几页之中。在对论坛类的网站进行爬取时,只需对分页的前几页进行爬取即可。因此,可以将分页数量设置为5、10、15等。其中,分页数量可以根据不同网站的实际情况进行设置,此处不做具体限定。

作为一种可选的技术方案,在步骤S235将当前分页的下一分页作为当前分页中,可以包括:

步骤S51,对当前分页对应的已爬取地址信息进行解析,确定与待爬取任务的下一分页对应的待爬取地址信息。

步骤S53,将待爬取地址信息对应的下一分页,作为待爬取的当前分页。

具体的,在待爬取任务中的每个分页页面都拥有与其对应的网络地址。因此,可以通过步骤S51至步骤S53对待爬取任务中的当前分页的待爬取地址信息进行解析,确定下个分页的下一分页的待爬取地址信息。利用待爬取地址信息构建用于爬取待爬取地址信息的爬取进程,从而达到对待爬取任务的下一分页进行爬取的目的。在构建爬取进程的同时,对待爬取任务的实时翻页数量进行累加运算,从而达到对翻页数量 进行计数的目的。

作为一种可选的技术方案,在步骤S51对当前分页对应的已爬取地址信息进行解析,确定与待爬取任务的下一分页对应的待爬取地址信息,可以包括:

步骤S511,获取待爬取任务的当前分页对应的已爬取地址信息。

步骤S513,按照预定解析规则对已爬取地址信息进行解析,确定在已爬取地址信息中用于记载页码信息的字符位置。

步骤S515,对字符位置中的字符进行替换,生成待爬取任务的下一分页对应的待爬取地址信息。

具体的,通过步骤S511至步骤S515按照预先设定的解析规则对与当前分页对应的已爬取地址信息进行解析,确定在已爬取地址信息中用于记录分页页码的字符位置。然后通过对分页页码进行替换,从而得到下一分页对应的待爬取地址信息。

在实际应用当中,与各个分页页面对应的网络地址,通常是按照一定规律设置的。并且,由于网络地址通常是以明文记载的,因此,爬虫程序可以通过直接对网络地址中的字符进行识别,即可确定在网络地址中用于记录分页页码的位置。在确定用于记录分页页码的位置,通过对用于记录分页页码的位置的字符进行替换,即可得到下一分页面的地址信息。

作为一种可选的技术方案,以分布式爬虫系统为例进行说明。在分布式爬虫系统中存在多台爬虫服务器。爬虫服务器之间依靠消息队列来分发待爬取任务。在将每个待爬取任务发送到爬虫服务器时,爬虫服务器中运行的爬虫程序需要确定与该任务对应的爬取规则。因此,可以在爬虫程序接收待爬取任务的同时,接收与该待爬取任务对应的最大翻页次数,当未对最大翻页次数进行设置时即可直接使用预先设置的默认翻页次数。每当爬虫程序遇到具有分页的文章或者任何资源信息时,将会在爬取分页中的内容的同时,对爬取的实际翻页数量进行计数操作。当实际翻页数量等于最大翻页次数时,爬虫程序认为当前的待爬取任务已经爬取完成,即结束与待爬取任务对应的爬取进程。

如图3所示,具体实施步骤如下

步骤S1,为每个待爬取任务设置最大翻页次数X。

步骤S2,当爬虫程序爬取分页内容的同时,对爬取的实际翻页数量Y进行计数操作。

步骤S3,爬虫程序在每次在对下一个分页内容进行爬取之前,判断实际翻页数量Y是否等于最大翻页次数X。如果等于,爬虫程序认为当前的待爬取任务已经爬取完成。

步骤S4,如果实际翻页数量Y小于最大翻页次数X,使实际翻页数量Y自增1,于此同时,构建下一分页面的爬取进程。

本发明实施例还提供了一种用于爬虫程序的数据处理装置。其中,需要说明的是,本发明实施例的用于爬虫程序的数据处理装置可以用于执行本发明实施例所提供的用于爬虫程序的数据处理方法,本发明实施例的用于爬虫程序的数据处理方法也可以通过本发明实施例所提供的用于爬虫程序的数据处理装置来执行。

图4是根据本发明实施例的用于爬虫程序的数据处理装置的结构示意图。如图4所示,该装置包括:第一获取模块21、执行模块23、爬取模块231、比较模块235和处理模块237。

其中,第一获取模块21,用于获取待爬取任务信息,其中,待爬取任务信息中至少包括待爬取任务对应的预设分页数量;执行模块23,用于将待爬取任务的第一分页作为当前分页,对当前分页执行如下步骤,直到与当前分页对应的当前已爬取分页数量等于预设分页数量为止:爬取模块231,用于爬取当前分页,累计当前已爬取分页数量;比较模块235,用于将当前已爬取分页数量与预设分页数量进行比较;处理模块237,用于当当前已爬取分页数量小于预设分页数量时,将当前分页的下一分页作为当前分页。

具体的,在通过网络爬虫对互联网资源进行爬取时,经常会遇到存在具有分页机制的互联网资源。而在这些互联网资源的分页中,并不是每一个分页都需要对其进行爬取。因此,通过上述第一获取模块21、执行模块23、爬取模块231、比较模块235和处理模块237,可以在获取待爬取任务信息的时候,获取任务地址以及与待爬取任务对应的分页数量。在对待爬取任务进行爬取时,通过对该待爬取任务的翻页数量进行累计。并在对下一分页进行爬取之前,将翻页数量与分页数量进行比对,从而确定是否对待爬取任务的下一分页页面进行爬取。从而达到了对具有分页机制的互联网资源的爬取页数进行控制的目的,进而解决由于对具有分页机制的网页进行全部爬取,导致的服务器资源浪费的技术问题。

作为一种可选的实施方式,以待爬取任务对应的分页数量为3页为例进行说明。当在对待爬取任务的第一个分页进行爬取后,将与所述待爬取任务对应的用于记录已爬取分页数量的计数器做累加处理。然后,将已爬取分页数量与获取到的分页数量进行比对,当已爬取分页数量小于3页时,将下一分页进行爬取。当在对待爬取任务的 第三个分页进行爬取后,将当前已爬取分页数量与获取到的分页数量进行比对。当一爬去分页数量等于3页时,终止对当前待爬取任务的爬取进程,结束对当前待爬取任务的爬取。

作为一种可选的技术方案,如图5所示,上述装置还包括:第二获取模块11、第三获取模块13和确定模块15。

其中,第二获取模块11,用于获取待爬取任务的任务地址;第三获取模块13,用于获取待爬取任务对应的任务类型;确定模块15,用于根据任务类型,确定与任务地址对应的预设分页数量。

具体的在对互联网资源进行爬取时,由于互联网资源的类型不同,可以根据各类型互联网资源的特点,为其设置不同的分页数量。通过上述第二获取模块11、第三获取模块13和确定模块15,可以在获取待爬取任务的任务地址的时候,同时获取待爬取任务对应的任务类型。通过任务类型,确定与任务类型对应的分页数量。利用任务地址和与其对应的分页数量,生成任务列表。

在实际应用当中,互联网资源可以包括资讯类网站、论坛类网站等多种类型,在对不同类型的网站进行爬取时,可以为其设置不同的分页数量。例如,在对资讯类网站进行爬取时,由于资讯类网站为了方便用户阅读,加快页面的加载速度,通常会将资讯内容按照其长度分为若干页。因此,在对资讯类网站进行爬取时,需要对记载有资讯内容的全部分页进行爬取,即可以将分页数量设置为资讯内容的全部分页数量。在对论坛类网站及进行爬取时,由于论坛类网站的有效内容通常存在于分页的前几页之中。在对论坛类的网站进行爬取时,只需对分页的前几页进行爬取即可。因此,可以将分页数量设置为5、10、15等。其中,分页数量可以根据不同网站的实际情况进行设置,此处不做具体限定。

作为一种可选的技术方案,上述处理模块235包括:第一子确定模块51和子处理模块53。

其中,第一子确定模块51,用于对当前分页对应的已爬取地址信息进行解析,确定与待爬取任务的下一分页对应的待爬取地址信息;子处理模块53,用于将待爬取地址信息对应的下一分页,作为待爬取的当前分页。

具体的,在待爬取任务中的每个分页页面都拥有与其对应的网络地址。因此,可以通过上述第一子确定模块51和子处理模块53,对待爬取任务中的当前分页的待爬取地址信息进行解析,确定下个分页的下一分页的待爬取地址信息。利用待爬取地址信息构建用于爬取待爬取地址信息的爬取进程,从而达到对待爬取任务的下一分页进 行爬取的目的。在构建爬取进程的同时,对待爬取任务的实时翻页数量进行累加运算,从而达到对翻页数量进行计数的目的。

作为一种可选的技术方案,上述子处理模块53包括:子获取模块511、第二子确定模块513和子生成模块515。

其中,子获取模块511,用于获取待爬取任务的当前分页对应的已爬取地址信息;第二子确定模块513,用于按照预定解析规则对已爬取地址信息进行解析,确定在已爬取地址信息中用于记载页码信息的字符位置;子生成模块515,用于对字符位置中的字符进行替换,生成待爬取任务的下一分页对应的待爬取地址信息。

具体的,通过上述子获取模块511、第二子确定模块513和子生成模块515,按照预先设定的解析规则对与当前分页对应的已爬取地址信息进行解析,确定在已爬取地址信息中用于记录分页页码的字符位置。然后通过对分页页码进行替换,从而得到下一分页对应的待爬取地址信息。

在实际应用当中,与各个分页页面对应的网络地址,通常是按照一定规律设置的。并且,由于网络地址通常是以明文记载的,因此,爬虫程序可以通过直接对网络地址中的字符进行识别,即可确定在网络地址中用于记录分页页码的位置。在确定用于记录分页页码的位置,通过对用于记录分页页码的位置的字符进行替换,即可得到下一分页面的地址信息。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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