CN109743411B - 一种在分布式环境下动态调度ip代理池的方法、装置及存储介质 - Google Patents
一种在分布式环境下动态调度ip代理池的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109743411B CN109743411B CN201811509275.2A CN201811509275A CN109743411B CN 109743411 B CN109743411 B CN 109743411B CN 201811509275 A CN201811509275 A CN 201811509275A CN 109743411 B CN109743411 B CN 109743411B
- Authority
- CN
- China
- Prior art keywords
- proxy
- agent
- pool
- ips
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种在分布式环境下动态调度IP代理池的方法、装置及存储介质。该方法包括:构建步骤,扫描代理IP资源,为扫描获得的代理IP初始化状态标识后构建IP代理池;检测步骤,对初始代IP理池中的代理IP进行检测,并根据检测结果更新代理IP的状态标识;调度步骤,获取IP代理池中M个代理IP生成代理IP队列以供下载中心请求使用。本发明确保代理池中的可用IP代理保持在一定数量之上,并根据加锁机制和缓存机制,实现单个代理IP在面对多线程调度的情况下可以做到时间维度上的有序响应,防止单个代理IP高频率访问,通过IP代理池、有效性检测及调度的协同,使分布式数据采集系统在保证采集效率的同时,又可以避免因高频率访问导致访问失败。
Description
技术领域
本发明涉及网络数据处理技术领域,特别是一种在分布式环境下动态调度IP代理池的方法、装置及存储介质。
背景技术
随着互联网规模的日益增长,时效性逐渐成为数据采集领域的一个关键难题。一般情况下,数据采集方可以通过分布式数据采集系统在单位时间内对多个目标网站进行高频次访问,以此实现多任务的高效率采集。然而,由于整个系统的IP资源是固定且有限的,当目标网站对访问IP的请求频率有设置阈值时,上述方法容易导致网站访问失败。
在现有技术中,主要有两种方式可以有效解决此类访问失败的问题:①使用请求频率控制,限制同一IP对同一域名的访问时间间隔不可小于指定阈值;②使用IP代理池,通过调用海量IP将分布式数据采集系统对目标网站的高并发访问分担到各代理IP上。
采用请求频率控制的方式,虽然可以对IP起到有效保护,防止访问失败,但由于访问时间间隔的存在,该方式会严重影响数据采集系统的效率。相反,采用IP代理池不仅可以避免访问失败,还在一定程度上保证了数据采集的效率。然而,尽管IP代理池是最佳解决方案之一,但由于现有IP代理池在可用性和稳定性上的表现仍旧差强人意,因此难以保证数据采集系统的长期稳定运行。
综上,在分布式数据采集领域,亟需一种实现动态IP代理池有序调度的方法及装置,同时保障数据采集系统的高效性和稳定性。
发明内容
本发明针对上述现有技术中的缺陷,提出了如下技术方案。
一种在分布式环境下动态调度IP代理池的方法,该方法包括:
构建步骤,扫描代理IP资源,为扫描获得的代理IP初始化状态标识后构建IP代理池;
检测步骤,对初始代IP理池中的代理IP进行检测,并根据检测结果更新代理IP的状态标识;
调度步骤,获取IP代理池中M个代理IP生成代理IP队列以供下载中心请求使用,其中M为大于1的整数。
更进一步地,所述代理IP状态标识包括:失效、未检测和有效,扫描获得的代理IP初始化状态标识为未检测,IP代理池存储每个代理IP的IP地址、端口、状态和检测时间。
更进一步地,在扫描代理IP资源时,设置IP代理池最小可用数为Nmin,当代理池中剩余可用代理IP数量小于Nmin时,重新扫描代理IP资源,并补充到IP代理池中;当代理池中剩余可用代理IP数量大于等于Nmin时,则停止扫描,且在经过第一预设时间阈值后,进行判断IP代理池可用代理IP数量,根据可用代理IP数量确定是否启动扫描任务,其中Nmin为整数。
更进一步地,所述检测步骤的操作为:定时遍历所述IP代理池,对代理IP逐一进行有效性检测,判断代理IP的首次获取时间CREATE_TIME与系统当前时间NOW_TIME的时间差是否大于10分钟,如果是,则判断当前代理IP已过期,并将该代理IP的状态标识更改为失效,如果否,则使用当前代理IP对预设的公开网站发送请求数据包,若返回的响应码处于正常范围,则判定当前代理IP可用,更改该代理IP的状态标识为有效,同时记录本次检测时间,若返回的响应码处于异常范围,则判定当前代理IP不可用,更改该代理IP的状态为失效。
更进一步地,所述调度步骤的操作为:定时选取M个代理IP加入到代理调度中心的代理IP队列中,在代理调度中心建立缓存区用于记录在预设时间间隔内已使用的代理IP,当有下载中心的下载单元向代理IP调度中心发起请求时,获取代理IP队列锁并判断代理IP队列是否为空,如果代理IP队列不为空,则位于队首的代理IP出队,如果代理IP队列为空,则等待IP代理池补充资源到代理IP队列,再执行出队动作;判断当前出队的代理IP在缓存区中是否存在,若存在,表示在预设的时间间隔内该代理IP已重复出现,则重新获取新的代理IP;若不存在,表示在预设的时间间隔内该代理IP首次使用,返回该代理IP给下载单元,代理IP返回给下载单元后,释放所述锁,同时将当前代理IP记录到缓存区中,防止在预设时间间隔内被重复使用。
更进一步地,所述方法还包括:请求步骤,所述下载单元获取到代理IP后,使用该代理IP向目标网站发起数据请求。
本发明还提出了一种在分布式环境下动态调度IP代理池的装置,该装置包括:
构建单元,用于扫描代理IP资源,为扫描获得的代理IP初始化状态标识后构建IP代理池;
检测单元,用于对初始代IP理池中的代理IP进行检测,并根据检测结果更新代理IP的状态标识;
调度单元,用于获取IP代理池中M个代理IP生成代理IP队列以供下载中心请求使用,其中M为大于1的整数。
更进一步地,所述代理IP状态标识包括:失效、未检测和有效,扫描获得的代理IP初始化状态标识为未检测,IP代理池存储每个代理IP的IP地址、端口、状态和检测时间。
更进一步地,在扫描代理IP资源时,设置IP代理池最小可用数为Nmin,当代理池中剩余可用代理IP数量小于Nmin时,重新扫描代理IP资源,并补充到IP代理池中;当代理池中剩余可用代理IP数量大于等于Nmin时,则停止扫描,且在经过第一预设时间阈值后,进行判断IP代理池可用代理IP数量,根据可用代理IP数量确定是否启动扫描任务,其中Nmin为整数。
更进一步地,所述检测单元执行的操作为:定时遍历所述IP代理池,对代理IP逐一进行有效性检测,判断代理IP的首次获取时间CREATE_TIME与系统当前时间NOW_TIME的时间差是否大于10分钟,如果是,则判断当前代理IP已过期,并将该代理IP的状态标识更改为失效,如果否,则使用当前代理IP对预设的公开网站发送请求数据包,若返回的响应码处于正常范围,则判定当前代理IP可用,更改该代理IP的状态标识为有效,同时记录本次检测时间,若返回的响应码处于异常范围,则判定当前代理IP不可用,更改该代理IP的状态为失效。
更进一步地,所述调度单元执行的操作为:定时选取M个代理IP加入到代理调度中心的代理IP队列中,在代理调度中心建立缓存区用于记录在预设时间间隔内已使用的代理IP,当有下载中心的下载单元向代理IP调度中心发起请求时,获取代理IP队列锁并判断代理IP队列是否为空,如果代理IP队列不为空,则位于队首的代理IP出队,如果代理IP队列为空,则等待IP代理池补充资源到代理IP队列,再执行出队动作;判断当前出队的代理IP在缓存区中是否存在,若存在,表示在预设的时间间隔内该代理IP已重复出现,则重新获取新的代理IP;若不存在,表示在预设的时间间隔内该代理IP首次使用,返回该代理IP给下载单元,代理IP返回给下载单元后,释放所述锁,同时将当前代理IP记录到缓存区中,防止在预设时间间隔内被重复使用。
更进一步地,所述装置还包括:请求单元,所述下载单元获取到代理IP后,使用该代理IP向目标网站发起数据请求。
本发明还提出了一种计算机可读存储介质,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时执行上述之任一的方法。
本发明的技术效果为:本发明构建了IP代理池并对其进行实时有效性检测,确保代理池中的可用IP代理保持在一定数量之上,并根据加锁机制和缓存机制,实现单个代理IP在面对多线程调度的情况下可以做到时间维度上的有序响应,防止单个代理IP高频率访问,通过IP代理池、有效性检测及调度的协同,使分布式数据采集系统在保证采集效率的同时,又可以避免因高频率访问导致访问失败,提高了用户体验。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。
图1是根据本发明的实施例的一种在分布式环境下动态调度IP代理池的方法的流程图。
图2是根据本发明的实施例的一种在分布式环境下动态调度IP代理池的装置的结构图。
图3是根据本发明的实施例的使用IP代理池的进行数据访问的系统的结构图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了本发明的一种在分布式环境下动态调度IP代理池的方法,该方法包括:
构建步骤S101,扫描代理IP资源,为扫描获得的代理IP初始化状态标识后构建IP代理池。
检测步骤S102,对初始代IP理池中的代理IP进行检测,并根据检测结果更新代理IP的状态标识。
调度步骤S103,获取IP代理池中M个代理IP生成代理IP队列以供下载中心请求使用,其中M为大于1的整数。
在本方法的一个实施例中,所述代理IP状态标识包括:失效、未检测和有效,扫描获得的代理IP初始化状态标识为未检测。即在扫描之前需要建立相应的代理IP状态标识,本发明中将代理IP状态划分为失效(标识号:-1)、未检测(标识号:0)、有效(标识号:1)3个状态,刚扫描出来的代理IP状态标识设置默认状态为未检测,IP代理池存储每个代理IP的IP地址、端口、状态和检测时间。IP代理池可以采用数据库进行存储。
在本方法的一个实施例中,在扫描代理IP资源时,设置IP代理池最小可用数为Nmin,当代理池中剩余可用代理IP数量小于Nmin时,重新扫描代理IP资源,并补充到IP代理池中;当代理池中剩余可用代理IP数量大于等于Nmin时,则停止扫描,且在经过第一预设时间阈值后,进行判断IP代理池可用代理IP数量,根据可用代理IP数量确定是否启动扫描任务,其中Nmin为整数,比如为500、1000等等,可以根据使用量来Nmin确定的大小,第一预设时间阈值可以是10分钟,1小时等等。
在本方法的一个实施例中,所述检测步骤S102的操作为:定时遍历所述IP代理池,对代理IP逐一进行有效性检测,判断代理IP的首次获取时间CREATE_TIME与系统当前时间NOW_TIME的时间差是否大于10分钟,如果是,则判断当前代理IP已过期,并将该代理IP的状态标识更改为失效,如果否,则使用当前代理IP对预设的公开网站发送请求数据包,若返回的响应码处于正常范围,则判定当前代理IP可用,更改该代理IP的状态标识为有效,同时记录本次检测时间,若返回的响应码处于异常范围,则判定当前代理IP不可用,更改该代理IP的状态为失效。为什么判断代理IP的首次获取时间CREATE_TIME与系统当前时间NOW_TIME的时间差是否大于10分钟,这是根据统计测试,代理IP的存活时间一般为10分钟。
通过响应码判断代理IP的有效性,即若返回的响应码处于正常范围(例如200、301、302、404等),则判定当前代理IP可用,更改其状态为有效(标识号:1),同时记录本次检测时间;若返回的响应码处于异常范围(例如407等),则判定当前代理IP不可用,更改其状态为失效(标识号:-1)。
本方法中通过检测步骤S102可以将无效的代理IP删除,确保了代理IP的可使用性,提高了使用代理IP的访问成功率,这是本发明的重要发明点之一。
在本方法的一个实施例中,所述调度步骤S103的操作为:定时选取M个代理IP加入到代理调度中心的代理IP队列中,在代理调度中心建立缓存区用于记录在预设时间间隔内已使用的代理IP,当有下载中心的下载单元向代理IP调度中心发起请求时,获取代理IP队列锁并判断代理IP队列是否为空,如果代理IP队列不为空,则位于队首的代理IP出队,如果代理IP队列为空,则等待IP代理池补充资源到代理IP队列,再执行出队动作;判断当前出队的代理IP在缓存区中是否存在,若存在,表示在预设的时间间隔内该代理IP已重复出现,则重新获取新的代理IP;若不存在,表示在预设的时间间隔内该代理IP首次使用,返回该代理IP给下载单元,代理IP返回给下载单元后,释放所述锁,同时将当前代理IP记录到缓存区中,防止在预设时间间隔内被重复使用。
其中,M的大小由分布式采集系统的节点数决定。若节点数较多,代表并发访问数较大,单位时间内需要的代理IP数量也更多;若节点数较少,代表并发访问数较小,单位时间内需要的代理IP数量也更少。所述的该时间间隔由目标网站的访问机制决定。假设某公开网站限制同一IP的请求频率为1次/分钟,则对应的时间间隔为1分钟。在这1分钟内,系统缓存区会记录所有被成功调用过的代理IP,当间隔时间结束,此缓存区会自动进行清空。
本方法中通过调度步骤S103的加锁机制和缓存机制,实现单个代理IP在面对多线程调度的情况下可以做到时间维度上的有序响应,防止单个代理IP高频率访问,通过IP代理池、有效性检测及调度的协同,使分布式数据采集系统在保证采集效率的同时,又可以避免因高频率访问导致访问失败,提高了用户体验,这是本发明的重要发明点之另一。
如图1所示,所述方法还包括:请求步骤S104,所述下载单元获取到代理IP后,使用该代理IP向目标网站发起数据请求。即由多节点的下载单元向代理IP调度中心发起请求,有序获取代理IP资源,并使用该代理IP向目标网站发起数据请求。
进一步参考图2,作为对上述图1所示方法的实现,本申请提供了在分布式环境下动态调度IP代理池的装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以包含于各种电子设备中。
图2示出了本发明的一种在分布式环境下动态调度IP代理池的装置,该装置包括:
构建单元201,扫描代理IP资源,为扫描获得的代理IP初始化状态标识后构建IP代理池。
检测单元202,对初始代IP理池中的代理IP进行检测,并根据检测结果更新代理IP的状态标识。
调度单元203,获取IP代理池中M个代理IP生成代理IP队列以供下载中心请求使用,其中M为大于1的整数。
在本装置的一个实施例中,所述代理IP状态标识包括:失效、未检测和有效,扫描获得的代理IP初始化状态标识为未检测。即在扫描之前需要建立相应的代理IP状态标识,本发明中将代理IP状态划分为失效(标识号:-1)、未检测(标识号:0)、有效(标识号:1)3个状态,刚扫描出来的代理IP状态标识设置默认状态为未检测,IP代理池存储每个代理IP的IP地址、端口、状态和检测时间。IP代理池可以采用数据库进行存储。
在本装置的一个实施例中,在扫描代理IP资源时,设置IP代理池最小可用数为Nmin,当代理池中剩余可用代理IP数量小于Nmin时,重新扫描代理IP资源,并补充到IP代理池中;当代理池中剩余可用代理IP数量大于等于Nmin时,则停止扫描,且在经过第一预设时间阈值后,进行判断IP代理池可用代理IP数量,根据可用代理IP数量确定是否启动扫描任务,其中Nmin为整数,比如为500、1000等等,可以根据使用量来Nmin确定的大小,第一预设时间阈值可以是10分钟,1小时等等。
在本装置的一个实施例中,所述检测单元202执行的操作为:定时遍历所述IP代理池,对代理IP逐一进行有效性检测,判断代理IP的首次获取时间CREATE_TIME与系统当前时间NOW_TIME的时间差是否大于10分钟,如果是,则判断当前代理IP已过期,并将该代理IP的状态标识更改为失效,如果否,则使用当前代理IP对预设的公开网站发送请求数据包,若返回的响应码处于正常范围,则判定当前代理IP可用,更改该代理IP的状态标识为有效,同时记录本次检测时间,若返回的响应码处于异常范围,则判定当前代理IP不可用,更改该代理IP的状态为失效。为什么判断代理IP的首次获取时间CREATE_TIME与系统当前时间NOW_TIME的时间差是否大于10分钟,这是根据统计测试,代理IP的存活时间一般为10分钟。
通过响应码判断代理IP的有效性,即若返回的响应码处于正常范围(例如200、301、302、404等),则判定当前代理IP可用,更改其状态为有效(标识号:1),同时记录本次检测时间;若返回的响应码处于异常范围(例如407等),则判定当前代理IP不可用,更改其状态为失效(标识号:-1)。
本装置中通过检测单元202的操作可以将无效的代理IP删除,确保了代理IP的可使用性,提高了使用代理IP的访问成功率,这是本发明的重要发明点之一。
在本装置的一个实施例中,所述调度单元203执行的操作为:定时选取M个代理IP加入到代理调度中心的代理IP队列中,在代理调度中心建立缓存区用于记录在预设时间间隔内已使用的代理IP,当有下载中心的下载单元向代理IP调度中心发起请求时,获取代理IP队列锁并判断代理IP队列是否为空,如果代理IP队列不为空,则位于队首的代理IP出队,如果代理IP队列为空,则等待IP代理池补充资源到代理IP队列,再执行出队动作;判断当前出队的代理IP在缓存区中是否存在,若存在,表示在预设的时间间隔内该代理IP已重复出现,则重新获取新的代理IP;若不存在,表示在预设的时间间隔内该代理IP首次使用,返回该代理IP给下载单元,代理IP返回给下载单元后,释放所述锁,同时将当前代理IP记录到缓存区中,防止在预设时间间隔内被重复使用。
其中,M的大小由分布式采集系统的节点数决定。若节点数较多,代表并发访问数较大,单位时间内需要的代理IP数量也更多;若节点数较少,代表并发访问数较小,单位时间内需要的代理IP数量也更少。所述的该时间间隔由目标网站的访问机制决定。假设某公开网站限制同一IP的请求频率为1次/分钟,则对应的时间间隔为1分钟。在这1分钟内,系统缓存区会记录所有被成功调用过的代理IP,当间隔时间结束,此缓存区会自动进行清空。
本装置中通过调度单元203操作中的加锁机制和缓存机制,实现单个代理IP在面对多线程调度的情况下可以做到时间维度上的有序响应,防止单个代理IP高频率访问,通过IP代理池、有效性检测及调度的协同,使分布式数据采集系统在保证采集效率的同时,又可以避免因高频率访问导致访问失败,提高了用户体验,这是本发明的重要发明点之另一。
如图2所示,所述装置还包括:请求单元204,所述下载单元获取到代理IP后,使用该代理IP向目标网站发起数据请求。即由多节点的下载单元向代理IP调度中心发起请求,有序获取代理IP资源,并使用该代理IP向目标网站发起数据请求。
图3示出了使用本发明使用IP代理池的进行数据访问的系统,下载中心通过网络与调度中心相连接,下载中心包括多个下载单元,每个下载单元可以包括多个分布式下载节点,每个节点为一个计算机。调度中心包括缓存区和代理IP队列,动态IP代理池与代理IP队列相连接,代理扫描程序执行的上述的扫描步骤,将扫描出来的代理IP存放在IP代理池中,代理检测程序执行上述的检测步骤,对IP代理池中的代理IP的可用性进行检测,以确保IP代理池中的代理IP的可用性。可见,在本系统中,完成了底层IP代理池的搭建和实时有效性检测,并且,根据加锁机制和缓存机制,实现单个代理IP在面对多线程调度的情况下可以做到时间维度上的有序响应。通过整个装置的协同,使分布式数据采集系统在保证采集效率的同时,又可以避免因高频率访问导致访问失败。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (5)
1.一种在分布式环境下动态调度IP代理池的方法,其特征在于,该方法包括:
构建步骤,扫描代理IP资源,为扫描获得的代理IP初始化状态标识后构建IP代理池;
检测步骤,对初始代IP理池中的代理IP进行检测,并根据检测结果更新代理IP的状态标识;
调度步骤,获取IP代理池中M个代理IP生成代理IP队列以供下载中心请求使用,其中M为大于1的整数;
其中,所述代理IP状态标识包括:失效、未检测和有效,扫描获得的代理IP初始化状态标识为未检测,IP代理池存储每个代理IP的IP地址、端口、状态和检测时间;其中,在扫描代理IP资源时,设置IP代理池最小可用数为Nmin,当代理池中剩余可用代理IP数量小于Nmin时,重新扫描代理IP资源,并补充到IP代理池中;当代理池中剩余可用代理IP数量大于等于Nmin时,则停止扫描,且在经过第一预设时间阈值后,进行判断IP代理池可用代理IP数量,根据可用代理IP数量确定是否启动扫描任务,其中Nmin为整数;
其中,所述检测步骤的操作为:定时遍历所述IP代理池,对代理IP逐一进行有效性检测,判断代理IP的首次获取时间CREATE_TIME与系统当前时间NOW_TIME的时间差是否大于10分钟,如果是,则判断当前代理IP已过期,并将该代理IP的状态标识更改为失效,如果否,则使用当前代理IP对预设的公开网站发送请求数据包,若返回的响应码处于正常范围,则判定当前代理IP可用,更改该代理IP的状态标识为有效,同时记录本次检测时间,若返回的响应码处于异常范围,则判定当前代理IP不可用,更改该代理IP的状态为失效,将无效的代理IP删除;
其中,所述调度步骤的操作为:定时选取M个代理IP加入到代理调度中心的代理IP队列中,在代理调度中心建立缓存区用于记录在预设时间间隔内已使用的代理IP,当有下载中心的下载单元向代理IP调度中心发起请求时,获取代理IP队列锁并判断代理IP队列是否为空,如果代理IP队列不为空,则位于队首的代理IP出队,如果代理IP队列为空,则等待IP代理池补充资源到代理IP队列,再执行出队动作;判断当前出队的代理IP在缓存区中是否存在,若存在,表示在预设的时间间隔内该代理IP已重复出现,则重新获取新的代理IP;若不存在,表示在预设的时间间隔内该代理IP首次使用,返回该代理IP给下载单元,代理IP返回给下载单元后,释放所述锁,同时将当前代理IP记录到缓存区中,防止在预设时间间隔内被重复使用。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
请求步骤,所述下载单元获取到代理IP后,使用该代理IP向目标网站发起数据请求。
3.一种在分布式环境下动态调度IP代理池的装置,其特征在于,该装置包括:
构建单元,用于扫描代理IP资源,为扫描获得的代理IP初始化状态标识后构建IP代理池;
检测单元,用于对初始代IP理池中的代理IP进行检测,并根据检测结果更新代理IP的状态标识;
调度单元,用于获取IP代理池中M个代理IP生成代理IP队列以供下载中心请求使用,其中M为大于1的整数其中,所述代理IP状态标识包括:失效、未检测和有效,扫描获得的代理IP初始化状态标识为未检测,IP代理池存储每个代理IP的IP地址、端口、状态和检测时间;
其中,在扫描代理IP资源时,设置IP代理池最小可用数为Nmin,当代理池中剩余可用代理IP数量小于Nmin时,重新扫描代理IP资源,并补充到IP代理池中;当代理池中剩余可用代理IP数量大于等于Nmin时,则停止扫描,且在经过第一预设时间阈值后,进行判断IP代理池可用代理IP数量,根据可用代理IP数量确定是否启动扫描任务,其中Nmin为整数;
其中,所述检测单元的操作为:定时遍历所述IP代理池,对代理IP逐一进行有效性检测,判断代理IP的首次获取时间CREATE_TIME与系统当前时间NOW_TIME的时间差是否大于10分钟,如果是,则判断当前代理IP已过期,并将该代理IP的状态标识更改为失效,如果否,则使用当前代理IP对预设的公开网站发送请求数据包,若返回的响应码处于正常范围,则判定当前代理IP可用,更改该代理IP的状态标识为有效,同时记录本次检测时间,若返回的响应码处于异常范围,则判定当前代理IP不可用,更改该代理IP的状态为失效,将无效的代理IP删除;
其中,所述调度单元的操作为:定时选取M个代理IP加入到代理调度中心的代理IP队列中,在代理调度中心建立缓存区用于记录在预设时间间隔内已使用的代理IP,当有下载中心的下载单元向代理IP调度中心发起请求时,获取代理IP队列锁并判断代理IP队列是否为空,如果代理IP队列不为空,则位于队首的代理IP出队,如果代理IP队列为空,则等待IP代理池补充资源到代理IP队列,再执行出队动作;判断当前出队的代理IP在缓存区中是否存在,若存在,表示在预设的时间间隔内该代理IP已重复出现,则重新获取新的代理IP;若不存在,表示在预设的时间间隔内该代理IP首次使用,返回该代理IP给下载单元,代理IP返回给下载单元后,释放所述锁,同时将当前代理IP记录到缓存区中,防止在预设时间间隔内被重复使用。
4.根据权利要求3所述的装置,其特征在于,所述装置还包括:
请求单元,所述下载单元获取到代理IP后,使用该代理IP向目标网站发起数据请求。
5.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时执行权利要求1-2之任一的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811509275.2A CN109743411B (zh) | 2018-12-10 | 2018-12-10 | 一种在分布式环境下动态调度ip代理池的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811509275.2A CN109743411B (zh) | 2018-12-10 | 2018-12-10 | 一种在分布式环境下动态调度ip代理池的方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109743411A CN109743411A (zh) | 2019-05-10 |
CN109743411B true CN109743411B (zh) | 2022-03-01 |
Family
ID=66358793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811509275.2A Active CN109743411B (zh) | 2018-12-10 | 2018-12-10 | 一种在分布式环境下动态调度ip代理池的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109743411B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147271B (zh) * | 2019-05-15 | 2020-04-28 | 重庆八戒传媒有限公司 | 提升爬虫代理质量的方法、装置及计算机可读存储介质 |
CN111294405A (zh) * | 2020-02-17 | 2020-06-16 | 北京北信源软件股份有限公司 | 一种代理检测方法及装置 |
CN111741141A (zh) * | 2020-06-15 | 2020-10-02 | 重庆帮企科技集团有限公司 | 一种高效ip代理池的实现方法、系统及数据获取方法 |
CN112422681B (zh) * | 2020-11-18 | 2023-01-13 | 中盈优创资讯科技有限公司 | 一种跨平台分布式通讯调用方法及装置 |
CN112671945A (zh) * | 2020-12-21 | 2021-04-16 | 深圳壹账通智能科技有限公司 | 管理ip代理池的方法、装置、计算机设备及存储介质 |
CN114143290B (zh) * | 2021-11-19 | 2024-01-30 | 国家计算机网络与信息安全管理中心广东分中心 | 一种多网站并行爬取的ip代理池的构建系统和方法 |
CN117278526B (zh) * | 2023-11-21 | 2024-03-19 | 厦门市唯云网络科技有限公司 | 一种基于人工神经网络的代理ip地址调度方法和装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954340B (zh) * | 2014-03-31 | 2019-04-30 | 腾讯科技(深圳)有限公司 | 一种代理ip地址的检测方法及装置 |
CN105100015B (zh) * | 2014-05-16 | 2018-07-03 | 林琳 | 一种采集互联网访问数据的方法及装置 |
US10375193B2 (en) * | 2014-11-26 | 2019-08-06 | Hughes Network Systems, Llc | Source IP address transparency systems and methods |
CN105681478B (zh) * | 2016-04-19 | 2019-01-22 | 北京高地信息技术有限公司 | 通过对网络资源调度提高网络爬虫抓取效率的方法和装置 |
CN106254579B (zh) * | 2016-09-30 | 2019-09-24 | 携程计算机技术(上海)有限公司 | 一种动态ip代理池及其搭建及管理方法 |
CN107957999A (zh) * | 2016-10-14 | 2018-04-24 | 北京国双科技有限公司 | 一种网络爬虫获取网站数据的方法及装置 |
CN107395782A (zh) * | 2017-07-19 | 2017-11-24 | 北京理工大学 | 一种基于代理池的ip限制受控源信息抓取方法 |
CN107635026B (zh) * | 2017-09-26 | 2019-01-22 | 马上消费金融股份有限公司 | 一种获取ip的方法及装置 |
-
2018
- 2018-12-10 CN CN201811509275.2A patent/CN109743411B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109743411A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109743411B (zh) | 一种在分布式环境下动态调度ip代理池的方法、装置及存储介质 | |
US9729488B2 (en) | On-demand mailbox synchronization and migration system | |
CN102087615B (zh) | 消息队列中消息的合并的方法和系统 | |
US9253265B2 (en) | Hot pluggable extensions for access management system | |
US9201693B2 (en) | Quota-based resource management | |
US10904184B2 (en) | Smart message delivery based on transaction processing status | |
CN103108320A (zh) | 一种监控移动设备的应用程序的方法和系统 | |
CN112688983A (zh) | 代理权限管理装置、终端设备及存储介质 | |
US9514176B2 (en) | Database update notification method | |
CN106845270B (zh) | 一种无痕浏览方法及装置 | |
US10970132B2 (en) | Deadlock resolution between distributed processes | |
CN111385255B (zh) | 一种异步调用实现方法、装置、服务器及服务器集群 | |
JP4607999B2 (ja) | ロック関連の一貫性欠如を処理する方法 | |
CN111309693A (zh) | 一种数据同步方法、装置、系统、电子设备及存储介质 | |
CN106550021B (zh) | 推送消息的推送方法及装置 | |
CN115412609B (zh) | 一种业务处理方法、装置、服务器及存储介质 | |
CN114374657B (zh) | 一种数据处理方法和装置 | |
CN114595069B (zh) | 服务下线方法、装置、电子设备及存储介质 | |
CN110008681A (zh) | 访问控制方法、设备及系统 | |
US10831563B2 (en) | Deadlock resolution between distributed processes using process and aggregated information | |
CN109995855B (zh) | 一种数据获取方法、装置及终端 | |
CN111026564A (zh) | 命名服务的处理方法和系统 | |
CN113271228A (zh) | 带宽资源调度方法、装置、设备及计算机可读存储介质 | |
US11036563B2 (en) | Deadlock resolution between distributed processes using process and group information | |
JP4628551B2 (ja) | 動的インストールの方法及びコンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |