一种管理爬虫代理的方法及装置与流程

文档序号:11250924阅读:419来源:国知局
一种管理爬虫代理的方法及装置与流程

本发明涉及互联网技术领域,特别是涉及一种管理爬虫代理的方法及装置。



背景技术:

随着网络的迅速发展,万维网成为大量信息的载体,为了有效地提取并利用这些信息,网络爬虫应用而生。网络爬虫(又被称为网页蜘蛛,网络机器人,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

然而,许多网站为了防止网络爬虫所带来的系统压力,采取了反爬虫技术,不允许爬虫进行高频率的数据采集。目前,为了应对反爬虫技术,进程可以向代理发起请求,由代理实现网页下载,如此,网站则不能检测到真正采集网页的机器,其中,代理是指可以用于实现网页下载的服务器。

现有技术中,为了实现使用代理更高效地采集所需要的信息,往往都是建立代理池,进程通过从代理池中不断获取代理,并且向获取的代理发起请求,来实现网页下载,采集所需要的信息。

但是,现有技术并没有对代理池中的代理进行有效管理,在代理池中的代理改变时,不能及时反馈给进程,例如:在代理池中有新增加的代理时,现有技术不能及时将新增加的代理反馈给进程,进程获取不到新增加的代理;在代理池中有不可用的代理时,进程获取到该不可用的代理后,不能进行网页下载。这样就会影响进程采集信息。



技术实现要素:

本发明实施例的目的在于提供一种管理爬虫代理的方法及装置,以实现及时更新代理,消除代理的改变对进程采集信息的影响。具体技术方案如下:

第一方面,本发明实施例提供了一种管理爬虫代理的方法,该方法包括:

获取并根据携带有待更新代理的指令,得到待更新代理的代理信息,其中,待更新代理的代理信息至少包括:待更新代理的ip地址、待更新代理的名称及待更新代理的端口,待更新代理的指令为待新增代理的指令和/或待删除代理的指令;

更新待更新代理的代理信息,并更新待更新代理到代理池。

可选的,所述获取并根据携带有待更新代理的指令,得到待更新代理的代理信息,包括:

获取并根据携带有待更新代理的指令,在待更新代理的指令为待新增代理的指令时,得到待新增代理的代理信息,其中,待新增代理的代理信息至少包括:待新增代理的ip地址、待新增代理的名称及待新增代理的端口;

相应的,所述更新待更新代理的代理信息,并更新待更新代理到代理池,包括:

添加待新增代理的代理信息,并添加待新增代理到代理池。

可选的,在所述获取并根据携带有待更新代理的指令,在待更新代理的指令为待新增代理的指令时,得到待新增代理的代理信息之后,本发明实施例的管理爬虫代理的方法还包括:

根据待新增代理的代理信息,向待新增代理发送下载第一指定内容的第一下载指令;

在待新增代理根据第一下载指令成功下载第一指定内容时,则待新增代理为可用代理;

相应的,所述添加待新增代理的代理信息,并添加待新增代理到代理池,包括:

在待新增代理为可用代理时,添加可用代理的代理信息,并添加可用代理到代理池。

可选的,所述获取并根据携带有待更新代理的指令,得到待更新代理的代理信息,包括:

获取并根据携带有待更新代理的指令,在待更新代理的指令为待删除代理的指令时,得到待删除代理的代理信息,其中,待删除代理的代理信息至少包括:待删除代理的ip地址、待删除代理的名称及待删除代理的端口;

相应的,所述更新待更新代理的代理信息,并更新待更新代理到代理池,包括:

删除待删除代理的代理信息,并删除代理池中的待删除代理。

可选的,在所述获取并根据携带有待更新代理的指令,在待更新代理的指令为待删除代理的指令时,得到待删除代理的代理信息之前,本发明实施例的管理爬虫代理的方法还包括:

周期性的获取代理池中第一代理的代理信息,并根据第一代理的代理信息,向第一代理发送下载第二指定内容的第二下载指令,其中,第一代理为代理池中的任一个代理;

在第一代理根据第二下载指令不能下载第二指定内容时,则该第一代理为待删除代理。

另一方面,本发明实施例还提供了一种管理爬虫代理的装置,该装置包括:

获取模块,用于获取并根据携带有待更新代理的指令,得到待更新代理的代理信息,其中,待更新代理的代理信息至少包括:待更新代理的ip地址、待更新代理的名称及待更新代理的端口,待更新代理的指令为待新增代理的指令和/或待删除代理的指令;

更新模块,用于更新待更新代理的代理信息,并更新待更新代理到代理池。

可选的,所述获取模块,具体用于:

获取并根据携带有待更新代理的指令,在待更新代理的指令为待新增代理的指令时,得到待新增代理的代理信息,其中,待新增代理的代理信息至少包括:待新增代理的ip地址、待新增代理的名称及待新增代理的端口;

相应的,所述更新模块,具体用于:

添加待新增代理的代理信息,并添加待新增代理到代理池。

可选的,在所述获取并根据携带有待更新代理的指令,在待更新代理的指令为待新增代理的指令时,得到待新增代理的代理信息之后,本发明实施例的管理爬虫代理的装置还包括:

健康检查模块,用于根据待新增代理的代理信息,向待新增代理发送下载第一指定内容的第一下载指令;

在待新增代理根据第一下载指令成功下载第一指定内容时,则待新增代理为可用代理;

相应的,所述更新模块,还具体用于:

在待新增代理为可用代理时,添加可用代理的代理信息,并添加可用代理到代理池。

可选的,所述获取模块,还具体用于:

获取并根据携带有待更新代理的指令,在待更新代理的指令为待删除代理的指令时,得到待删除代理的代理信息,其中,待删除代理的代理信息至少包括:待删除代理的ip地址、待删除代理的名称及待删除代理的端口;

相应的,所述更新模块,还具体用于:

删除待删除代理的代理信息,并删除代理池中的待删除代理。

可选的,在所述获取并根据携带有待更新代理的指令,在待更新代理的指令为待删除代理的指令时,得到待删除代理的代理信息之前,本发明实施例的管理爬虫代理的装置还包括:

待删除代理检查模块,用于周期性的获取代理池中第一代理的代理信息,并根据第一代理的代理信息,向第一代理发送下载第二指定内容的第二下载指令,其中,第一代理为代理池中的任一个代理;

在第一代理根据第二下载指令不能下载第二指定内容时,则该第一代理为待删除代理。

本发明实施例提供的一种管理爬虫代理的方法及装置,通过在有待更新代理时,及时更新待更新代理的代理信息,并更新待更新代理到代理池,保证代理池中的代理都是可用代理,消除代理的改变对进程采集信息的影响。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的一种管理爬虫代理的方法的第一种实施方式的流程图;

图2为本发明实施例的一种管理爬虫代理的方法的第二种实施方式的流程图;

图3为本发明实施例的一种管理爬虫代理的方法的第三种实施方式的流程图;

图4为本发明实施例的一种管理爬虫代理的方法的第四种实施方式的流程图;

图5为本发明实施例的一种管理爬虫代理的方法的第五种实施方式的流程图;

图6为本发明实施例的一种管理爬虫代理的装置的结构图;

图7为本发明实施例的一种管理爬虫代理的装置的应用系统图。

具体实施方式

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

为了解决现有技术存在的问题,本发明实施例提供了一种管理爬虫代理的方法及装置,以实现及时更新代理,消除代理的改变对进程采集信息的影响。

下面,首先对本发明实施例提供的一种管理爬虫代理的方法进行介绍,如图1所示,为本发明实施例的一种管理爬虫代理的方法的第一种实施方式的流程图,所述的方法可以包括:

s101,获取并根据携带有待更新代理的指令,得到待更新代理的代理信息,其中,待更新代理的代理信息至少包括:待更新代理的ip地址、待更新代理的名称及待更新代理的端口,待更新代理的指令为待新增代理的指令和/或待删除代理的指令;

代理是指可以用于实现网页下载的服务器,

具体地,该待更新代理包括自建代理和商业购买的代理,对于自建代理,该携带有待更新代理的指令来自于自建代理集群,对于商业购买的代理,该携带有待更新代理的指令来自于商业购买的代理集群,其中,自建代理的方法为现有技术,此处不再赘述。

自建代理在建立成功以后,都是可用的,生命周期较长,而商业购买的代理,在购买后,并不能保证所有购买的代理都是可用的,并且购买的代理的生命周期也不同,因此,在这里将自建代理与商业购买的代理进行分开运维,能够减少运维的复杂度。

s102,更新待更新代理的代理信息,并更新待更新代理到代理池。

具体地,在步骤s101中得到待更新代理的代理信息后,首先更新本发明实施例的待更新代理的代理信息,然后发送更新指令到代理池,更新代理池中的该待更新代理。

需要说明的是,代理池为保存有各个代理的代理信息的表项或集合。

本发明实施例提供的一种管理爬虫代理的方法,通过在有待更新代理时,及时更新待更新代理的代理信息,并更新待更新代理到代理池,保证代理池中的代理都是可用代理,消除代理的改变对进程采集信息的影响。

具体地,本发明实施例的一种管理爬虫代理的方法,可以应用于代理注册中心,该代理注册中心用于维护和管理代理池,具体地,该代理注册中心可以使用zookeeper集群构建。为了更好的说明本发明实施例,下面将以代理注册中心为例进行说明。

在第一种实施方式中,待更新代理的指令为待新增代理的指令和/或待删除代理的指令,那么,在待更新代理的指令为待新增代理的指令时,可以通过图2所示的实施方式进行管理,如图2所示,为本发明实施例的一种管理爬虫代理的方法的第二种实施方式的流程图;该方法可以包括:

s201,获取并根据携带有待更新代理的指令,在待更新代理的指令为待新增代理的指令时,得到待新增代理的代理信息,其中,待新增代理的代理信息至少包括:待新增代理的ip地址、待新增代理的名称及待新增代理的端口;

在该待新增代理为自建代理时,自建代理集群发送携带有该自建代理信息的更新指令,具体地,该待新增代理的指令中包含有该待新增代理的代理信息,因此,代理注册中心可以获取到该待新增代理的代理信息。

s202,添加待新增代理的代理信息,并添加待新增代理到代理池。

在代理注册中心获取到该待新增代理的代理信息后,将该待新增代理的代理信息注册到代理注册中心,具体地,注册到代理注册中心的方法为:将该待新增代理的代理信息添加到代理注册中心相应的路径下。在注册成功后,发送携带有该待新增代理的代理信息的更新指令给代理改变触发进程,该进程用于发送携带有该待新增代理的代理信息的添加指令给代理池,将该待新增代理的代理信息也添加到代理池中。

通过本发明实施例提供的一种管理爬虫代理的方法,能够及时得到待新增的代理,并将该待新增代理添加到代理池,能够使得进程在使用代理池中的代理采集信息时,能够及时得到最新的代理,从而消除代理的改变对进程采集信息的影响。

由于自建代理在注册时都是可以使用的,因此,在该待新增代理为自建代理时,可以使用上述实施方式。为了保证添加到代理池中的代理都是可用的,消除代理的改变对进程采集信息的影响,下面,介绍本发明实施例提供的一种管理爬虫代理的方法的第三种实施方式,如图3所示,为本发明实施例的一种管理爬虫代理的方法的第三种实施方式的流程图,该方法可以包括:

s301,获取并根据携带有待更新代理的指令,在待更新代理的指令为待新增代理的指令时,得到待新增代理的代理信息,其中,待新增代理的代理信息至少包括:待新增代理的ip地址、待新增代理的名称及待新增代理的端口;

s302,根据待新增代理的代理信息,向待新增代理发送下载第一指定内容的第一下载指令;

s303,在待新增代理根据第一下载指令成功下载第一指定内容时,则待新增代理为可用代理;

s304,在待新增代理为可用代理时,添加可用代理的代理信息,并添加可用代理到代理池。

需要说明的是,该第一指定内容为在检查该待新增代理是否为可用代理时,选择的内容,可以包括:网页、信息、视频等内容。

通过本发明实施例,能够保证添加到代理池中的商用代理都是可以使用的代理,进一步消除代理的改变对进程采集信息的影响。

在第一种实施方式中,待更新代理的指令为待新增代理的指令和/或待删除代理的指令,那么,在待更新代理的指令为待删除代理的指令时,可以通过图4所示的实施方式进行管理,如图4所示,为本发明实施例的一种管理爬虫代理的方法的第四种实施方式的流程图;该方法可以包括:

s401,获取并根据携带有待更新代理的指令,在待更新代理的指令为待删除代理的指令时,得到待删除代理的代理信息,其中,待删除代理的代理信息至少包括:待删除代理的ip地址、待删除代理的名称及待删除代理的端口;

s402,删除待删除代理的代理信息,并删除代理池中的待删除代理。

需要说明的是,该待删除代理的指令可以来自于自建代理集群、商业购买的代理集群或者代理池。

具体地,这里以代理注册中心为例进行说明,在代理注册中心获取到该待删除代理的代理信息后,将该待删除代理的代理信息从代理注册中心删除,具体地,删除的方法为:从代理注册中心的相应路径下删除该待删除代理。在代理注册中心删除后,发送携带有该待删除代理的代理信息的更新指令给代理改变触发进程,该进程用于发送携带有该待删除代理的代理信息的添加指令给代理池,将该待删除代理的代理信息从代理池中删除。

通过本发明实施例提供的一种管理爬虫代理的方法,能够及时得到待删除的代理,并将该待删除代理从代理池中删除,能够使得进程在使用代理池中的代理采集信息时,不使用该待删除的代理,从而消除代理的改变对进程采集信息的影响。

具体地,在所述获取并根据携带有待更新代理的指令,在待更新代理的指令为待删除代理的指令时,得到待删除代理的代理信息之前,本发明实施例的管理爬虫代理的方法还包括:

周期性的获取代理池中第一代理的代理信息,并根据第一代理的代理信息,向第一代理发送下载第二指定内容的第二下载指令,其中,第一代理为代理池中的任一个代理;

在第一代理根据第二下载指令不能下载第二指定内容时,则该第一代理为待删除代理。

需要说明的是,该第二指定内容为在检查第一代理是否为待删除代理时选择的内容,可以包括:网页、信息、视频等内容。为了降低实施本发明实施例的难度,该第二指定内容可以与第一指定内容相同。

应当理解的是,获取代理池中第一代理的代理信息的周期是根据实际需要进行设置的。

通过本发明实施例,能够及时删除代理池中的不可用代理,保证代理池中的代理都是可以使用的代理,进一步消除代理的改变对进程采集信息的影响。

需要说明的是,在该待更新代理的指令为待新增代理的指令和待删除代理的指令时,可以同时通过上述的实施方式来实现,可以相互参考,这里不再赘述。

另外,本发明实施例还提供了一种管理爬虫代理的方法,如图5所示,为本发明实施例的一种管理爬虫代理的方法的第五种实施方式的流程图,该方法可以包括:

s501,获取并根据携带有待新增代理的指令,得到待新增代理的代理信息,其中,待新增代理的代理信息至少包括:待新增代理的ip地址、待新增代理的名称及待新增代理的端口;

s502,添加待新增代理的代理信息,并添加待新增代理到代理池;

s503,周期性的获取代理池中第一代理的代理信息,并根据第一代理的代理信息,向第一代理发送下载第二指定内容的第二下载指令,其中,第一代理为代理池中的任一个代理;

s504,在第一代理根据第二下载指令不能下载第二指定内容时,则该第一代理为待删除代理;

s505,获取并根据携带有待删除代理的指令,得到待删除代理的代理信息,其中,待删除代理的代理信息至少包括:待删除代理的ip地址、待删除代理的名称及待删除代理的端口;

s506,删除待删除代理的代理信息,并删除代理池中的待删除代理。

相应于上述方法实施例,本发明实施例提供了一种管理爬虫代理的装置,如图6所示,为本发明实施例的一种管理爬虫代理的装置的结构图,该装置可以包括:

获取模块601,用于获取并根据携带有待更新代理的指令,得到待更新代理的代理信息,其中,待更新代理的代理信息至少包括:待更新代理的ip地址、待更新代理的名称及待更新代理的端口,待更新代理的指令为待新增代理的指令和/或待删除代理的指令;

更新模块602,用于更新待更新代理的代理信息,并更新待更新代理到代理池。

本发明实施例提供的一种管理爬虫代理的装置,通过在有待更新代理时,及时更新待更新代理的代理信息,并更新待更新代理到代理池,保证代理池中的代理都是可用代理,消除代理的改变对进程采集信息的影响。

具体地,所述获取模块601,具体用于:

获取并根据携带有待更新代理的指令,在待更新代理的指令为待新增代理的指令时,得到待新增代理的代理信息,其中,待新增代理的代理信息至少包括:待新增代理的ip地址、待新增代理的名称及待新增代理的端口;

相应的,所述更新模块602,具体用于:

添加待新增代理的代理信息,并添加待新增代理到代理池。

具体地,在所述获取并根据携带有待更新代理的指令,在待更新代理的指令为待新增代理的指令时,得到待新增代理的代理信息之后,本发明实施例的管理爬虫代理的装置还包括:

健康检查模块,用于根据待新增代理的代理信息,向待新增代理发送下载第一指定内容的第一下载指令;

在待新增代理根据第一下载指令成功下载第一指定内容时,则待新增代理为可用代理;

相应的,所述更新模块602,还具体用于:

在待新增代理为可用代理时,添加可用代理的代理信息,并添加可用代理到代理池。

具体地,所述获取模块601,还具体用于:

获取并根据携带有待更新代理的指令,在待更新代理的指令为待删除代理的指令时,得到待删除代理的代理信息,其中,待删除代理的代理信息至少包括:待删除代理的ip地址、待删除代理的名称及待删除代理的端口;

相应的,所述更新模块602,还具体用于:

删除待删除代理的代理信息,并删除代理池中的待删除代理。

具体地,在所述获取并根据携带有待更新代理的指令,在待更新代理的指令为待删除代理的指令时,得到待删除代理的代理信息之前,本发明实施例的管理爬虫代理的装置还包括:

待删除代理检查模块,用于周期性的获取代理池中第一代理的代理信息,并根据第一代理的代理信息,向第一代理发送下载第二指定内容的第二下载指令,其中,第一代理为代理池中的任一个代理;

在第一代理根据第二下载指令不能下载第二指定内容时,则该第一代理为待删除代理。

如图7所示,为本发明实施例的一种管理爬虫代理的装置的应用系统图,该系统可以包括:

代理模块701、代理注册中心702、健康检查模块703、待删除代理检查模块704、代理改变触发模块705、代理更新模块706,代理池707,其中代理注册中心702包括:获取模块601和更新模块602。

代理注册中心702用于获取代理模块701中的自建代理,或者获取代理模块701中商业购买的代理,或者获取代理池707中的待删除代理;在代理注册中心702获取代理模块701中商业购买的代理时,为了保证添加到代理池707中的新增代理都是可用代理,通过健康检查模块703对商业购买的代理进行检查,只有在商业购买的代理是可用代理时,才将该商业购买的代理添加到代理池707中。

具体的添加方式为:代理注册中心702中的更新模块602根据获取模块601获取的待添加代理的代理信息,添加该待添加代理的代理信息到代理注册中心702中,并发送该待添加代理的代理信息到代理改变触发模块705,代理改变触发模块705产生并发送携带有该待添加代理的代理信息的添加指令到代理更新模块706,代理更新模块706根据该添加指令将该待添加代理的代理信息添加到代理池707中。

在将代理模块701中的代理添加到代理池707中后,待删除代理检查模块704会周期性的检查代理池707中是否有待删除代理,在代理池707中有待删除代理时,代理注册中心702中的更新模块602删除代理注册中心702中的该待删除代理的代理信息,并发送该待删除代理的代理信息给代理改变触发模块705,代理改变触发模块705产生并发送携带有该待删除代理的代理信息的删除指令给代理更新模块706,代理更新模块706根据该删除指令将该待删除代理的代理信息从代理池707中删除。

需要说明的是,本发明实施例的装置是应用上述管理爬虫代理的方法的装置,则上述管理爬虫代理的方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台服务端设备(可以是计算机、服务器或者网络设备等)执行本发明各个实施例所述的方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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