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

技术编号:15094679 阅读:67 留言:0更新日期:2017-04-07 22:15
本发明专利技术提供一种定向信息抓取场景中大规模IP地址资源使用方法。包括以下步骤:针对设置了访问频率限制的网络资源,建立包含IP地址集合L中全部IP地址的优先队列;分配可用IP地址时,取出优先队列中优先级最高的IP地址,并更新该IP地址的下次可访问该网络资源的时刻,若当前时刻大于或等于t,则当前任务可立即使用该IP地址;针对每个IP地址维护该IP地址的使用次数un和访问失败次数fn,当从优先队列中取出的优先级最高的IP地址时,以1-fn/un的概率选用,fn/un的概率放弃。既实现IP地址访问能力充分利用;又提高网络信息获取任务的成功率。

Method for using large scale IP address resource in directional information grabbing scene

The invention provides a method for using a large scale IP address resource in a directional information grabbing scene. Includes the following steps: to set the access frequency limits of cyber source, establish all the priority queue contains a IP address IP address set L; distribution of available IP addresses, remove the highest priority priority queue in the IP address, and updates the IP address of the next time can access the network resources of the moment, if the current time is greater than or equal to t, the current task can use the IP address immediately; for each IP address maintenance the IP address number UN and access failure times FN, when removed from the priority queue is the highest priority in the IP address, with a probability of 1-fn/un selection, give up the probability of fn/un. It can not only make full use of IP address access ability, but also improve the success rate of network information acquisition task.

【技术实现步骤摘要】

本专利技术涉及特定网络信息获取领域,具体涉及一种定向信息抓取场景中大规模IP地址资源使用方法,能够在单IP对特定网络资源访问频率受限,大量任务并发执行的情况下,高效使用和分配大量IP地址资源。
技术介绍
随着互联网的快速发展,网络上的数据资源也急剧膨胀。在某些需要对网络资源进行集中获取的场景中,例如搜索引擎的爬虫爬取某个网站的网页,由于目标网页数量巨大,简单地单一线程串行执行获取任务已经远远不能达到性能上的要求。此时较为常用的方法是同时执行多个信息获取任务,提高系统的吞吐量,从而缩短批量任务的总体完成时间。常见地并发执行多个网络任务的方法包括使用多线程或者事件驱动(IO复用)的编程模型。多任务并发执行的一个直接结果是加快了爬取程序对目标网站的访问频率。而通常目标网站从系统能力的角度出发,为了保证普通用户对网站的正常访问,会在发现某个IP地址过于频繁地访问网站后对其进行拒绝,使其不能获取网站正常的响应,即通常情况下单个IP地址对某个特定网络资源(例如某个域名、URL或者符合特定模式的URL)的访问频率是受限制的,不能高于某个特定的值。因此爬取程序的吞吐量一方面依赖于其执行任务的并发程度(通常取决于CPU、内存和网卡等硬件资源的配置以及所采用并发模型的效率),另一方面则依赖于其所拥有的IP地址的数量,因为在给定IP地址数量为n,单个IP地址对网络资源的最高访问频率为q每秒的情况下,爬取程序吞吐量所能达到的理论上界为n*q每秒。因此,通常情况下在进行特定网络资源集中采集的场景中会同时使用多个IP地址并发地执行获取任务。若程序的并发能力上界高于多IP地址总体吞吐量上界,即系统并发能力不构成系统总体吞吐量的限制因素时,此时程序设计所面临的问题是如何向多个并发执行的信息抓取任务有效地分配IP地址,使得所有IP地址接近其访问频率上限,既不因为访问过慢造成资源的浪费,又不因为访问过快而造成IP地址被目标网站屏蔽。同时在实际的场景中,为了节约抓取成本,大量的IP地址通常是互联网上公开的代理(HTTP或者Socks代理),代理的质量和稳定性通常无法控制,甚至会出现整体可用率较差的情况,若在抓取过程中不加区别地使用将造成大量无谓的访问异常。
技术实现思路
基于以上定向信息抓取场景中存在的问题,本专利技术的目的是提供一种定向信息抓取场景中大规模IP地址资源使用方法。解决两个方面的问题,首先着力解决并发任务中IP地址的分配问题,在访问频率的约束下实现IP地址访问能力充分利用;其次提供IP地址可用性的评估机制,提高网络信息获取任务的成功率。为达上述目的,本专利技术采取的具体技术是:一种定向信息抓取场景中大规模IP地址资源使用方法,包括以下步骤:针对设置了访问频率限制的网络资源,根据一IP地址集合L中每个IP地址下次可访问该网络资源的时刻建立包含L中全部IP地址的优先队列;在向某个网络信息采集任务分配可用IP地址时,取出优先队列中优先级最高的IP地址,设其下次可访问该网络资源的时刻为t,并更新该IP地址的下次可访问该网络资源的时刻,重新将其放入优先队列;若当前时刻大于或等于t,则当前任务可立即使用该IP地址,否则当前任务阻塞直至当前时刻大于或等于t,方可使用该IP地址;针对每个IP地址维护该IP地址的使用次数un和访问失败次数fn,当从优先队列中取出的优先级最高的IP地址时,以1-fn/un的概率选用,fn/un的概率放弃;若该优先级最高的IP地址被放弃,则继续根据优先级从优先队列中取出IP地址,直到有一个IP地址被选用。进一步地,所述优先队列中,IP地址的下次访问该网络资源的时刻越小则其优先级越高。进一步地,根据目标网络资源的访问频率限制值来更新该IP地址的下次可访问该网络资源的时刻。进一步地,所述根据一IP地址集合L中每个IP地址下次可访问该网络资源的时刻建立包含L中全部IP地址的优先队列包括:1)建立原始类型为(IP,ts)的优先队列Q,其中ts表示该IP地址最早的下次可访问该网络资源的时刻,在优先队列Q中,ts的值越小,元素的优先级越高;2)对L中的每个IP地址,构造元素(IP,当前时刻)并放入优先队列Q中,最终使Q中的元素数量等于L中的元素数量。进一步地,所述针对每个IP地址维护该IP地址的使用次数un和访问失败次数fn包括:建立key为IP地址,value为(fn,un)的字典S,对L中的每个IP地址,构造key为该IP地址,value为(0,0)的元素并放入S中;最终S中的元素数量等于L中的元素数量。进一步地,所述当从优先队列中取出的优先级最高的IP地址时,以1-fn/un的概率选用,fn/un的概率放弃;若该优先级最高的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小于1-fn/un,则转至步骤5),否则转至步骤2)。5)对于步骤2)中选出的元素(IP,ts),若当前时刻t大于或等于ts,则返回IP;否则,睡眠ts-t的时间之后返回IP。通过采取上述技术方案:首先通过优先选用最近可使用的IP地址,使得在系统并发能力不构成性能瓶颈的场景下,每个IP地址的访问能力被充分使用,达到IP地址访问频率的上限;同时在不存在IP地址可立即使用的情况下阻塞当前抓取任务,防止IP地址被过于频繁地使用,因而可避免被目标网站屏蔽。其次通过每个IP地址的访问历史估计该IP地址的可用性,根据IP地址的可用性确定该地址被选用的概率,其结果是可用性较强的IP地址被使用地较为频繁,而可用性较差的IP地址则被较少地使用,有效地提高了网络任务的成功率。因此在定向信息抓取的场景中,本专利技术提供的方法可高效地使用大量的IP地址进行并发的信息采集。对本专利技术中的方法进行软件实现并用来进行实际的网络信息抓取任务后,结果表明本专利技术的大量IP地址使用方法可使得系统性能接近理论上的吞吐量上限。附图说明图1本专利技术一采集应用场景中任务执行期间IP地址数量变化曲线。图2a、图2b、图2c为本专利技术一采集应用场景中3批IP地址可用率分布示意图。<本文档来自技高网
...

【技术保护点】
一种定向信息抓取场景中大规模IP地址资源使用方法,包括以下步骤:针对设置了访问频率限制的网络资源,根据一IP地址集合中每个IP地址下次可访问该网络资源的时刻建立包含集合中全部IP地址的优先队列;在向某个网络信息采集任务分配可用IP地址时,取出优先队列中优先级最高的IP地址,并更新该IP地址的下次可访问该网络资源的时刻,重新将其放入优先队列;若当前时刻大于或等于其下次可访问该网络资源的时刻,则当前任务可立即使用该IP地址,否则当前任务阻塞直至当前时刻大于或等于其下次可访问该网络资源的时刻,方可使用该IP地址;针对每个IP地址维护该IP地址的使用次数和访问失败次数,当从优先队列中取出的优先级最高的IP地址时,以1‑访问失败次数/该IP地址的使用次数的概率选用,访问失败次数/该IP地址的使用次数的概率放弃;若该优先级最高的IP地址被放弃,则继续根据优先级从优先队列中取出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的值越...

【专利技术属性】
技术研发人员:时金桥谭庆丰王学宾
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1