一种定向信息抓取场景中大规模ip地址资源使用方法_2

文档序号:9931437阅读:来源:国知局
获取接口和IP反馈接口。IP获取接口供采集任务调用获取可用的IP地址;IP反馈接口用于采集任务向本方法反馈某IP地址使用结果,以便计算IP地址的可用性。本方法需要的配置参数(已知的输入参数),初始化阶段和使用接口的实现步骤分别如下。
[0034]配置参数:
[0035]可用于信息采集的IP地址列表L;单个IP地址连续访问目标资源的最短间隔T秒。
[0036]初始化阶段:
[0037]I)建立原始类型为(IP,ts)的优先队列Q,其中ts表示该IP地址最早的可用时刻,即只在当前时刻大于等于ts时该IP地址才可用于信息采集。在优先队列Q中,ts的值越小,元素的优先级越高。
[0038]2)对L中的每个IP地址,构造元素(IP,当前时刻)并放入优先队列Q中。最终Q中的元素数量等于L中的元素数量。
[0039]3)建立key为IP地址,value为(fn,un)的字典S。对L中的每个IP地址,构造key为该IP地址,value为(O,O)的元素并放入S中。最终S中的元素数量等于L中的元素数量。
[0040]IP 获取接口:
[0041]输入:无
[0042]实现步骤:
[0043]I)维护一个计数器,表示步骤2)执行的次数c,并初始化c = O。
[0044]2)从优先队列Q中取出优先级最小的元素(IP,ts),之后向Q中放入元素(IP,max(当前时刻,ts)+T),并令c = c+l。若c大于等于某个预设的固定值(如100),为避免较长时间内选择不到可用IP,此时直接转至步骤5)。
[0045]3)根据IP从字典S中获得对应的(fn,un)。若un小于等于某个固定值(如8),认为该IP使用次数较少,尚不足以估计可用性,此时转至步骤5)。
[0046]4)生成一个位于区间[0,1)之间的浮点类型的随机数r,若r小于Ι-fn/un,则转至步骤5),否则转至步骤2)。
[0047]5)对于2)中选出的(IP,ts),若当前时刻t大于或等于ts,则返回IP;否则,睡眠ts-t的时间之后返回IP。
[0048]输出:IP
[0049]IP 反馈接口:
[0050]输入:1P,使用结果(布尔变量,真表示使用成功,假表示使用失败)
[0051 ] 实现步骤:
[0052]在字典S中获取输入IP对应的(fn,un)。若输入的使用结果为假,则令fn= fn+l。令un = un+l ο
[0053]输出:无
[0054]下面结合具体的采集应用场景说明本发明的积极效果。
[0055]为验证本发明的大规模IP地址资源使用方法的效率,实现了特定网络资源的采集软件,并针对某商业网站进行了实际的采集任务,最终采集结果表明本发明中的方法可在系统并发能力不成为瓶颈的情况下,使系统实际的采集吞吐量达到IP资源采集能力的理论上限。
[0056]采集场景设置如下:采集任务共574150个,每个采集任务发出一个HTTP请求并获取其完整的响应。共使用约550个IP地址进行采集,同一个IP地址连续发出HTTP请求的最短间隔为3秒。IP地址全部来自互联网上公开的HTTP代理,会出现部分IP地址部分时间不可用的情况,采集软件将使用本发明中的IP反馈接口对其可用性进行评估并选取质量较好的IP地址。由于实际场景中采集任务数量通常较大,而互联网公开代理的可用性通常会随着时间逐步降低,为了避免长时间不更换代理造成代理总体可用性变差,软件将每隔30分钟重新载入一批代理,替换之前使用的代理。经测试,在目标网站不限制单个IP地址访问频率的情况下,采集软件可达到的吞吐量约为400任务每秒,即系统并发能力的上限约为400任务每秒。
[0057]采集任务运行结果如下:总体运行时间为I时12分53秒。任务运行期间共更新了3次IP地址,如图1所示。由于采集任务开始后不久即进行了第一次IP更新,所以初始载入的IP地址的可用性计算不具有统计意义,因此后续只给出了每次更新后的IP地址使用情况的相关统计。通过对数据进行统计得到,采集任务中使用的IP数量均值为547,可用率均值为74% (如图2a、图2b、图2c所示)。图3a、图3b、图3c所示为IP地址的使用次数分布,与图2a、图2b、图2c中的相应的可用率分布接近。由于每个IP地址的访问能力为1/3任务每秒,因此全部IP地址可提供的访冋能力约为547*74%*1/3任务每秒,即135任务每秒。因为系统并发能力400任务每秒大于此吞吐量,所以此吞吐量135任务每秒为系统吞吐量的理论上限。而系统的实际吞吐量为574150任务/1时12分53秒=131任务每秒(如图4a、图4b所示),达到了理论上限的97%,说明本发明提供的大量IP地址使用方法可在系统并发能力足够的情况下使系统吞吐量接近IP资源总体访问能力的上限。
【主权项】
1.一种定向信息抓取场景中大规模IP地址资源使用方法,包括以下步骤: 针对设置了访问频率限制的网络资源,根据一 IP地址集合中每个IP地址下次可访问该网络资源的时刻建立包含集合中全部IP地址的优先队列; 在向某个网络信息采集任务分配可用IP地址时,取出优先队列中优先级最高的IP地址,并更新该IP地址的下次可访问该网络资源的时刻,重新将其放入优先队列;若当前时刻大于或等于其下次可访问该网络资源的时刻,则当前任务可立即使用该IP地址,否则当前任务阻塞直至当前时刻大于或等于其下次可访问该网络资源的时刻,方可使用该IP地址; 针对每个IP地址维护该IP地址的使用次数和访问失败次数,当从优先队列中取出的优先级最高的IP地址时,以1-访问失败次数/该IP地址的使用次数的概率选用,访问失败次数/该IP地址的使用次数的概率放弃;若该优先级最高的IP地址被放弃,则继续根据优先级从优先队列中取出IP地址,直到有一个IP地址被选用。2.如权利要求1所述的定向信息抓取场景中大规模IP地址资源使用方法,其特征在于,所述优先队列中,IP地址下次访问该网络资源的时刻越小则其优先级越高。3.如权利要求1所述的定向信息抓取场景中大规模IP地址资源使用方法,其特征在于,根据目标网络资源的访问频率限制值来更新该IP地址下次可访问该网络资源的时刻。4.如权利要求1所述的定向信息抓取场景中大规模IP地址资源使用方法,其特征在于,所述根据一 IP地址集合L中每个IP地址下次可访问该网络资源的时刻建立包含L中全部IP地址的优先队列包括: 1)建立原始类型为(IP,ts)的优先队列Q,其中ts表示该IP地址最早的下次可访问该网络资源的时刻,在优先队列Q中,ts的值越小,元素的优先级越高; 2)对L中的每个IP地址,构造元素(IP,当前时刻)并放入优先队列Q中,最终使Q中的元素数量等于L中的元素数量。5.如权利要求1所述的定向信息抓取场景中大规模IP地址资源使用方法,其特征在于,所述针对每个IP地址维护该IP地址的使用次数和访问失败次数包括: 建立key为IP地址,value为(fn,un)的字典S,对L中的每个IP地址,构造key为该IP地址,value为(0,0)的元素并放入S中;最终S中的元素数量等于L中的元素数量;其中,fn为该IP地址的使用次数,Un为访问失败次数。6.如权利要求5所述的定向信息抓取场景中大规模IP地址资源使用方法,其特征在于,所述当从优先队列中取出的优先级最高的IP地址时,以1-访问失败次数/该IP地址的使用次数的概率选用,访问失败次数/该IP地址的使用次数的概率放弃;若该优先级最高的IP地址被放弃,则继续根据优先级从优先队列中取出IP地址,直到有一个IP地址被选用,包括: 1)维护一个计数器,表示下述步骤2)执行的次数c,并初始化c= 0; 2)从优先队列Q中取出优先级最高的元素(IP,ts),之后向Q中放入元素(IP,max(当前时刻,ts)+T),并令c = c+1;若c大于等于预设的一固定值,直接转至步骤5); 3)根据IP从字典S中获得对应的(fn,un);若un小于等于某个固定值,转至步骤5); 4)生成一个位于区间[0,1)之间的浮点类型的随机数r,若r小于Ι-fn/un,则转至步骤5),否则转至步骤2); 5)对于步骤2)中选出的元素(IP,ts),若当前时刻t大于或等于ts,则返回IP;否则,睡眠ts-t的时间之后返回IP。
【专利摘要】本发明提供一种定向信息抓取场景中大规模IP地址资源使用方法。包括以下步骤:针对设置了访问频率限制的网络资源,建立包含IP地址集合L中全部IP地址的优先队列;分配可用IP地址时,取出优先队列中优先级最高的IP地址,并更新该IP地址的下次可访问该网络资源的时刻,若当前时刻大于或等于t,则当前任务可立即使用该IP地址;针对每个IP地址维护该IP地址的使用次数un和访问失败次数fn,当从优先队列中取出的优先级最高的IP地址时,以1-fn/un的概率选用,fn/un的概率放弃。既实现IP地址访问能力充分利用;又提高网络信息获取任务的成功率。
【IPC分类】H04L29/12
【公开号】CN105721631
【申请号】CN201610182957
【发明人】时金桥, 谭庆丰, 王学宾
【申请人】中国科学院信息工程研究所
【公开日】2016年6月29日
【申请日】2016年3月28日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1