一种网络爬虫识别系统及方法

文档序号:6439163阅读:586来源:国知局
专利名称:一种网络爬虫识别系统及方法
技术领域
本发明涉及网络安全检测和控制领域,具体涉及一种网络爬虫识别系统及方法。
技术背景
网络爬虫是指自动提取网页的程序,能够按照一定的规则,自动抓取网站信息。当前对网络爬虫的检测方法主要是基于阈值的方法,即计算一个IP地址访问的次数,如果访问次数超过了检测阈值,则认定该IP地址采用网络爬虫获取网站信息。
显然,该方法具有检测滞后时间长等不足。根据访问次数的检测方法,为了获得降低检测误差,需要将检测阈值设置的足够大,以便于能够准确区分爬虫行为与正常访问行为,由于检测阈值较大,检测滞后时间较长。发明内容
为解决上述问题,本文提供了一种网络爬虫识别方法及系统。
与现有技术中已公开的方法相比,本发明具有如下目的(1)识别迅速;(2)识别准确率高。
一种网络爬虫识别系统,其特征在于,包括
缓冲模块,用于保存进入系统的请求,在系统开始运行时,所述请求发送至训练模块,在训练时间结束,该请求发送至识别模块;
训练模块,用于将所述请求进行训练以及学习相应的请求,进行可疑度运算;
识别模块,用于分析提交至识别模块的请求,识别爬虫,记录其源地址,依据源地址进行过滤,对来自爬虫地址的数据进行丢弃;
转发模块,用于转发训练模块以及识别模块允许通过的请求。
所述的识别系统,其特征在于,所述训练模块还包括
学习模块,用于初始化参数,设定训练时间阈值,收到不同请求,根据所述不同请求建立数据结构。
所述的识别系统,其特征在于,所述学习模块收到的不同请求包括新的请求会话、内嵌对象请求会话和/或历史请求会话。
所述的识别系统,其特征在于,所述学习模块,用于收到的不同请求时,根据当前时间,淘汰已经不活跃的会话,删除相应数据结构。
所述的识别系统,其特征在于,所述学习模块,用于收到历史请求会话,找到对应会话的数据结构,记录该请求会话的URL,为该请求会话的前一个请求的URL,与该请求会话的URL计数加1,进行可疑度运算。
所述的识别系统,其特征在于,所述学习模块,用于收到内嵌对象请求会话,为该请求会话新建一个数据结构,并设该请求会话的第一个请求会话为空,同时空为该请求会话的第一个请求会话的计数加1,进行可疑度运算。
所述的识别系统,其特征在于,所述学习模块,用于收到新的请求会话,为该会话建立相应的数据结构,并记录该请求会话的URL,该请求会话作为会话的第一个请求的次数加1,进行可疑度运算。
所述的识别系统,其特征在于,还包括
可疑度运算模块,用于对会话的一个请求,设所有请求计数的最大值为M,那么对一个计数为X的请求,其可疑度为1-X/M ;对一个请求URL,其所有后续请求URL计数的最大值为M,那么对一个请求计数为X的URL,其访问请求转换可疑度为1-X/M,通过所有页面,作为会话第一个请求的计数,设所有请求的最大值为M,那么对一个计数为X的请求,其作为一个会话首请求的可疑度为1-X/M,其中M为最大化网页页面统计次数、X为单一网页页面统计次数。
所述的识别系统,其特征在于,所述识别模块还包括
过滤模块,用于初始化参数设定可疑判别阈值、可疑次数计数、可疑次数阈值,不活跃会话淘汰时间阈值,收到不同请求,根据所述不同请求建立数据结构。
所述的识别系统,其特征在于,所述过滤模块收到的不同请求包括新的请求会话、内嵌对象请求会话和/或历史请求会话。
所述的识别系统,其特征在于,所述过滤模块,用于收到不同请求,根据当前时间, 淘汰已经停止的会话,删除相应数据结构。
所述的识别系统,其特征在于,所述过滤模块,还用于收到内嵌请求会话时,该请求来自一个新请求会话,为该会话新建数据结构,并设该会话的第一个请求URL为空,获取首请求为空的异常度,如果异常度大于可疑判别阈值,可疑次数计数加1,根据当前时间,淘汰已经停止的会话,删除相应数据结构。
所述的识别系统,其特征在于,所述过滤模块,还用于收到新的请求会话,为该会话新建数据结构,并设该会话的第一个请求为当前请求,获取该请求作为会话首请求的可疑度,如果可疑度大于可疑判别阈值,可疑次数计数加1,如果可疑次数计数大于可疑判别阈值,则认为该会话为爬虫。
所述的识别系统,其特征在于,所述过滤模块,还用于收到历史请求会话时,获取计算请求转换可疑度,如果可疑度大于可疑判别阈值,可疑次数计数加1,如果可疑次数计数大于可疑判别阈值,则认为该会话为爬虫。
本发明公开一种网络爬虫识别方法,其特征在于,包括如下步骤
步骤100,用于保存进入系统的请求,在系统开始运行时,所述请求执行步骤200, 在训练时间结束,该请求执行步骤300 ;
步骤200,将所述请求进行训练以及学习相应的请求,进行可疑度运算;
步骤300,分析从步骤200提交的请求,识别爬虫,记录其源地址,依据源地址进行过滤,对来自爬虫地址的数据进行丢弃;
步骤400,转发步骤200、300允许通过的请求。
所述的识别方法,其特征在于,所述步骤200还包括
步骤201,初始化参数,设定训练时间阈值,收到不同请求,根据所述不同请求建立数据结构。
所述的识别方法,其特征在于,所述步骤201收到的不同请求包括新的请求会话、内嵌对象请求会话和/或历史请求会话。
所述的识别方法,其特征在于,所述步骤201还包括,
步骤202,收到的不同请求时,根据当前时间,淘汰已经不活跃的会话,删除相应数据结构。
所述的识别方法,其特征在于,所述步骤202还包括,
步骤203,如果收到历史请求会话,找到对应请求会话的数据结构,记录该请求会话的URL,为该请求会话的前一个请求的URL,与该请求会话的URL计数加1,执行步骤204 ;
步骤204,检测训练时间,如果训练时间结束执行步骤205,如果未结束执行步骤 202 ;
步骤205,进行可疑度运算。
所述的识别方法,其特征在于,所述步骤202还包括,
步骤206,如果收到内嵌对象请求会话,执行步骤207 ;
步骤207,为该请求会话新建一个数据结构,执行步骤208 ;
步骤208,为该请求会话新建数据结构,并设该请求会话的第一个请求会话为空, 同时空为该请求会话的第一个请求会话的计数加1,执行步骤209 ;
步骤209,检测训练时间,如果训练时间结束执行步骤210,如果未结束执行步骤 202 ;
步骤210,进行可疑度运算。
所述的识别方法,其特征在于,所述步骤202还包括,
步骤211,收到新的请求会话,为该会话建立相应的数据结构,并记录该请求会话的URL,执行步骤212 ;
步骤212,该请求会话作为会话的第一个请求的次数加1,执行步骤213 ;
步骤213,检测训练时间,如果训练时间结束执行步骤214,如果未结束执行步骤 202
步骤214,进行可疑度运算。
所述的识别方法,其特征在于,所述可疑度运算为,对会话的一个请求,设所有请求计数的最大值为M,那么对一个计数为X的请求,其可疑度为1-X/M ;对一个请求URL,其所有后续请求URL计数的最大值为M,那么对一个请求计数为X的URL,其访问请求转换可疑度为1-X/M,通过所有页面,作为会话第一个请求的计数,设所有请求的最大值为M,那么对一个计数为X的请求,其作为一个会话首请求的可疑度为1-X/M,其中M为最大化网页页面统计次数、X为单一网页页面统计次数。
所述的识别方法,其特征在于,所述步骤300还包括
步骤301,初始化参数设定可疑判别阈值、可疑次数计数、可疑次数阈值,不活跃会话淘汰时间阈值,收到不同请求,根据所述不同请求建立数据结构。
所述的识别方法,其特征在于,所述步骤301收到的不同请求包括新的请求会话、内嵌对象请求会话和/或历史请求会话。
所述的识别方法,其特征在于,所述步骤301还包括,
步骤302,收到不同请求,根据当前时间,淘汰已经停止的会话,删除相应数据结构。
所述的识别方法,其特征在于,所述步骤302还包括,
步骤303,收到内嵌请求会话时,执行步骤304 ;
步骤304,该请求来自一个新请求会话,执行步骤305,如果不是新请求会话执行步骤302 ;
步骤305,为该请求会话新建数据结构,并设该会话的第一个请求URL为空,执行步骤306 ;
步骤306,获取首请求为空的异常度,如果异常度大于可疑判别阈值,可疑次数计数加1,执行步骤302。
所述的识别方法,其特征在于,所述步骤302还包括,
步骤307,收到新的请求会话,执行步骤308 ;
步骤308,为该会话新建数据结构,并设该会话的第一个请求为当前请求,执行步骤 309 ;
步骤309,获取该请求作为会话首请求的可疑度,如果可疑度大于可疑判别阈值, 执行步骤310,如果不大于可疑判别阈值,执行步骤302 ;
步骤310,可疑次数计数加1,执行步骤311 ;
步骤311,如果可疑次数计数大于可疑判别阈值,则认为该会话为爬虫,如果不大于可疑判别阈值,执行步骤302。
所述的识别方法,其特征在于,所述步骤302还包括,
步骤312,收到历史请求会话时,获取计算请求转换可疑度,执行步骤313 ;
步骤313,如果可疑度大于可疑判别阈值,执行步骤314,不大于可疑判别阈值,执行步骤302 ;
步骤314,可疑次数计数加1,执行步骤315 ;
步骤315,如果可疑次数计数大于可疑判别阈值,则认为该请求会话为爬虫,如果不大于可疑判别阈值,执行步骤302。
本发明公开了一种网站爬虫识别方法及系统。能有效识别网络爬虫,并且具有较低的计算复杂性,独立于服务器和客户端运行,无需对现有的服务器和客户端进行任何修改。


图1为本发明网络爬虫识别方法的训练流程图2为本发明网络爬虫识别流程图3为本发明网络爬虫识别系统部署连接图4为本发明网络爬虫识别系统结构图5为本发明的具体实施方式
示意图。
具体实施方式
下面给出本发明的具体实施方式
,结合附图对本发明做出了详细描述。
如图1所示为训练过程,具体步骤如下
步骤SlOl,初始化参数设不活跃的会话(session)淘汰时间阈值(Remove_THD) 为75秒-200秒,优选的淘汰时间阈值为100秒;
步骤S102,收到一个请求(Req,该请求是网络的一个请求,首先进入缓存模块,然后才被训练模块接受),即一个数据包,根据当前时间,(当前时间就是这个数据包到达时当前系统时间。为了淘汰会话,需要记录会话的最后一个数据包到达时间;对任意会话,如果当前时间-会话最后一个数据包到达时间> 淘汰时间阈值(RemovejHD),则认为该会话已经结束,不再活跃,淘汰该会话)淘汰已经不活跃的会话;具体方法是如果会话最后一个请求的时间距当前时间超过了时间阈值(RemovejHD),则淘汰此会话,删除相应数据结构, 进入步骤S103 ;
步骤S103,如果请求(Req)是内嵌对象请求,(请求分为两种,一种是主请求,一种是内嵌对象请求。主请求是指一个页面请求,如新浪主页,或者新浪新闻页面的请求,内嵌对象请求是指嵌在一个页面中的请求,如广告,音乐等)转入步骤S104 ;否则转入步骤 S106。
步骤S104,如果请求来自一个新的会话,转入步骤S105 ;否则转入步骤SllO ;
步骤S105,为该会话新建一个数据结构,并设该会话的第一个请求为空(NULL), 同时NULL为一个会话的第一个请求的计数+1,转入步骤SllO ;
步骤S106,如果请求Req来自一个新的会话,为该会话建立相应的数据结构,并记录该请求Req的URL,转入步骤S107 ;否则转入步骤S108 ;
步骤S107,该请求作为一个会话的第一个请求的次数加1,转入步骤S109 ;
步骤S108,找到对应会话的数据结构,记录该请求的URL,设该会话的前一个请求的URL为URL_pref (中文含义就是这个URL请求之前的一个URL。例如当前的URL是新浪新闻页面 http://news. sina. com. cn/,而在这个 URL 之前的请求 URL 是 http //www. sina. com. cn,贝Ij http //www. sina. com. cn 就是 URL_pref),URL_pref 后足艮 URL 的计数 +1 ;转入步骤S109 ;
步骤S109,如果训练时间未结束,转入步骤S102,否则转入步骤SllO ;
步骤S110,可疑度计算对会话的一个请求,设所有请求计数的最大值为M,那么对一个计数为X的请求,其可疑度为1-X/M ;对一个请求URL,其所有后续请求URL计数的最大值为M,那么对一个请求计数为X的URL,其访问请求转换可疑度为1-X/M。通过所有页面,作为会话第一个请求的计数,设所有请求的最大值为M,那么对一个计数为X的请求,其作为一个会话首请求的可疑度为1-X/M。
解释其中M,X的意义
现有一个网页页面A,训练过程中,它后续的页面(指用户先访问A,然后接下来访问的页面)包括B、C、D、E。另Nb表示统计中,A后跟B的次数,其余变量意义类似。
其中 M = max (Nb, Ne, Nd, Ne)。
假设M为Nb,则A后跟B的可疑度即为l_Nb/Nb = 0。(这里X为Nb)
A后跟C的可疑度即为1-Nc/Nb = 0。(这里X为Ne)。
可见,1-X/M的意义在于,如果对一个页面,其后跟的页面次数越小,可疑度越高。 对出现次数最大的页面,可疑度是0,对训练过程中没有出现过的页面,其可疑度是1。(其中X为单一网页页面统计次数,M为X最大值)
这里介绍本发明训练过程的思路
爬虫的工作原理是从一个页面(如新浪主页)的所有内嵌URL(通过url,可以从这个页面链接到别的页面,如通过新浪主页,可以点击左上的新闻,跳转到新闻的页面。)中随机抽取一个,作为下一个访问请求URL,对网站进行访问,以此来遍历一个网站所有的页
人访问页面,具有一定的规律,比如在军事页面(http://mil.news. sina.com. cn/)转到新闻版面和综艺版面的概率是不同的,因为军事信息通常由男性关注,男性关注新闻的可能性比关注综艺的概率要高。而对爬虫而言,从军事页面转到新闻和综艺的概率是相同的,均为随机选择结果。
本发明正是通过分析这种页面的转换概率来判断是爬虫还是人为访问。
S101-S110的作用就是建立这种页面间转换的概率,以此判断是爬虫还是人为访问。
如图2所示为识别过程,具体步骤如下
步骤S201,初始化参数令可疑判别阈值susp_thd为0. 75-0. 92优选的可疑判别阈值为0. 85,可疑次数计数susp_count为0,可疑次数阈值susp_count_thd为3-6,优选的可疑次数阈值为4,不活跃会话淘汰时间阈值RemovejHD为75秒-200秒,优选的淘汰时间阈值范围为100秒;
步骤S202,收到一个请求,根据当前时间,淘汰已经停止会话的数据结构,具体方法是如果会话最后一个请求的时间距当前时间超过了时间阈值RemovejHD,则淘汰此会话,删除相应数据结构,转入步骤S203 ;
步骤S203,判断请求是否是内嵌对象请求,如果是内嵌对象请求,转入步骤S204, 否则转入步骤S208 ;
步骤S204,如果该请求来自一个新会话,则转入步骤S205,否则转入步骤S202 ;
步骤S205,为该会话新建数据结构,并设该会话的第一个请求URL为空(NULL),转入步骤S206 ;
步骤S206,获取首请求为空(NULL)的异常度,如果异常度大于可疑判别阈值 susp_thd,转入步骤S207,否则转入步骤S202 ;
步骤S207,可疑次数计数susp_count加1,转入步骤S202 ;
步骤S208,如果该请求来自一个新会话,则转入步骤S209,否则转入步骤S211 ;
步骤S209,为该会话新建数据结构,并设该会话的第一个请求为当前请求,转入步骤 S210 ;
步骤S210,获取该请求作为会话首请求的可疑度,如果可疑度大于可疑判别阈值 susp_thd,转入步骤S213,否则转入步骤S202 ;
步骤S211,根据该会话的上一个请求和当前请求,获取计算请求转换可疑度,转入步骤S212 ;
步骤S212,如果可疑度大于可疑判别阈值susp_thd,转入步骤S213,否则转入步骤 S202 ;
步骤S213,可疑次数计数(SuSp_COunt)加1,转入步骤S214 ;
步骤S214,如果可疑次数计数(susp_COunt)大于可疑判别阈值(susp_c0unt_ thd),则认为该会话为爬虫,否则转入步骤S202 ;
下面简述识别方法
通过一个请求的URL,和这个URL之前的请求URL,得到两者之间转换的概率,与阈值SUSp_thd相比,如果超过的次数超过可疑判别阈值SUSp_COimt_thd,则认为异常次数过多,为爬虫访问。采用可疑判别阈值,而不是一次就断定是爬虫,是为了降低误报率。
本发明公开了一种网站爬虫识别方法及系统。能有效识别网络爬虫,并且具有较低的计算复杂性,独立于服务器和客户端运行,无需对现有的服务器和客户端进行任何修改。
本发明公开的识别系统具有有效识别网站爬虫的能力,连接到保护网站的接入路由器,接受分光流量进行识别,具体的部署连接方式可参见图2所示。
如图3所示为本发明应用于网络系统的部署连接图,将来自于互联网络的请求数据由路由器连接到网络爬虫识别系统中,同时对于路由器连接的被保护的信息系统来说, 由该识别系统对于互联网络中的请求数据进行训练以及识别的操作,从而保护信息系统不受侵害,更加有利于系统的安全与稳定。
如图4所示为本发明网络爬虫识别系统的结构图,包括
缓冲模块100,用于保存进入系统的请求,在系统开始运行时,所述请求发送至训练模块,在训练时间结束,该请求发送至识别模块;
训练模块200,用于将所述请求进行训练以及学习相应的请求,进行可疑度运算;
识别模块300,用于分析提交至识别模块的请求,识别爬虫,记录其源地址,依据源地址进行过滤,对来自爬虫地址的数据进行丢弃;
转发模块400,用于转发训练模块以及识别模块允许通过的请求。
所述训练模块还包括
学习模块,用于初始化参数,设定训练时间阈值,收到不同请求,根据所述不同请求建立数据结构。
所述学习模块收到的不同请求包括新的请求会话、内嵌对象请求会话和/或历史请求会话。
所述学习模块,用于收到的不同请求时,根据当前时间,淘汰已经不活跃的会话, 删除相应数据结构。
所述学习模块,用于收到历史请求会话,找到对应会话的数据结构,记录该请求会话的URL,为该请求会话的前一个请求的URL,与该请求会话的URL计数加1,进行可疑度运笪弁。
所述学习模块,用于收到内嵌对象请求会话,为该请求会话新建一个数据结构,并设该请求会话的第一个请求会话为空,同时空为该请求会话的第一个请求会话的计数加1, 进行可疑度运算。
所述学习模块,用于收到新的请求会话,为该会话建立相应的数据结构,并记录该请求会话的URL,该请求会话作为会话的第一个请求的次数加1,进行可疑度运算。
所述的识别系统,还包括
可疑度运算模块,用于对会话的一个请求,设所有请求计数的最大值为M,那么对一个计数为χ的请求,其可疑度为1-X/M ;对一个请求URL,其所有后续请求URL计数的最大值为M,那么对一个请求计数为X的URL,其访问请求转换可疑度为1-X/M,通过所有页面,作为会话第一个请求的计数,设所有请求的最大值为M,那么对一个计数为X的请求,其作为一个会话首请求的可疑度为1-X/M,其中M为最大化网页页面统计次数、X为单一网页页面统计次数。
所述识别模块还包括
过滤模块,用于初始化参数设定可疑判别阈值、可疑次数计数、可疑次数阈值,不活跃会话淘汰时间阈值,收到不同请求,根据所述不同请求建立数据结构。
所述过滤模块收到的不同请求包括新的请求会话、内嵌对象请求会话和/或历史请求会话。
所述过滤模块,用于收到不同请求,根据当前时间,淘汰已经停止的会话,删除相应数据结构。
所述过滤模块,还用于收到内嵌请求会话时,该请求来自一个新请求会话,为该会话新建数据结构,并设该会话的第一个请求URL为空,获取首请求为空的异常度,如果异常度大于可疑判别阈值,可疑次数计数加1,根据当前时间,淘汰已经停止的会话,删除相应数据结构。
所述过滤模块,还用于收到新的请求会话,为该会话新建数据结构,并设该会话的第一个请求为当前请求,获取该请求作为会话首请求的可疑度,如果可疑度大于可疑判别阈值,可疑次数计数加1,如果可疑次数计数大于可疑判别阈值,则认为该会话为爬虫。
所述过滤模块,还用于收到历史请求会话时,获取计算请求转换可疑度,如果可疑度大于可疑判别阈值,可疑次数计数加1,如果可疑次数计数大于可疑判别阈值,则认为该会话为爬虫。
下面,给出一个具体实例(如图5所示)
有两个首请求为pl,p2,其可疑度均为0. 5。连接两个页面的连线,表示两个页面间存在方法的先后顺序关系,数值表示可疑度。如Pl->p3,表示先页面pl,然后访问页面 P3的可疑度为0. 54.
对于如下会话,其访问页面的顺序为
会话1 :plplplplplpl,可疑度均超过0.85,因而认为该会话为攻击;
会话2 :plp3p6p7,可疑度均低于阈值,认为该会话为正常会话;
会话3 :ρ2ρ4ρ8ρ13ρ18,该会话为攻击行为。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。
权利要求
1.一种网络爬虫识别系统,其特征在于,包括缓冲模块,用于保存进入系统的请求,在系统开始运行时,所述请求发送至训练模块, 在训练时间结束,该请求发送至识别模块;训练模块,用于将所述请求进行训练以及学习相应的请求,进行可疑度运算;识别模块,用于分析提交至识别模块的请求,识别爬虫,记录其源地址,依据源地址进行过滤,对来自爬虫地址的数据进行丢弃;转发模块,用于转发训练模块以及识别模块允许通过的请求。
2.如权利要求1所述的识别系统,其特征在于,所述训练模块还包括学习模块,用于初始化参数,设定训练时间阈值,收到不同请求,根据所述不同请求建立数据结构。
3.如权利要求2所述的识别系统,其特征在于,所述学习模块收到的不同请求包括新的请求会话、内嵌对象请求会话和/或历史请求会话。
4.如权利要求2所述的识别系统,其特征在于,所述学习模块,用于收到的不同请求时,根据当前时间,淘汰已经不活跃的会话,删除相应数据结构。
5.如权利要求3所述的识别系统,其特征在于,所述学习模块,用于收到历史请求会话,找到对应会话的数据结构,记录该请求会话的URL,为该请求会话的前一个请求的URL, 与该请求会话的URL计数加1,进行可疑度运算。
6.如权利要求3所述的识别系统,其特征在于,所述学习模块,用于收到内嵌对象请求会话,为该请求会话新建一个数据结构,并设该请求会话的第一个请求会话为空,同时空为该请求会话的第一个请求会话的计数加1,进行可疑度运算。
7.如权利要求3所述的识别系统,其特征在于,所述学习模块,用于收到新的请求会话,为该会话建立相应的数据结构,并记录该请求会话的URL,该请求会话作为会话的第一个请求的次数加1,进行可疑度运算。
8.如权利要求1、5、6或7所述的识别系统,其特征在于,还包括可疑度运算模块,用于对会话的一个请求,设所有请求计数的最大值为M,那么对一个计数为X的请求,其可疑度为1-X/M ;对一个请求URL,其所有后续请求URL计数的最大值为 M,那么对一个请求计数为X的URL,其访问请求转换可疑度为1-X/M,通过所有页面,作为会话第一个请求的计数,设所有请求的最大值为M,那么对一个计数为X的请求,其作为一个会话首请求的可疑度为1-X/M,其中M为最大化网页页面统计次数、X为单一网页页面统计次数。
9.如权利要求1所述的识别系统,其特征在于,所述识别模块还包括过滤模块,用于初始化参数设定可疑判别阈值、可疑次数计数、可疑次数阈值,不活跃会话淘汰时间阈值,收到不同请求,根据所述不同请求建立数据结构。
10.如权利要求9所述的识别系统,其特征在于,所述过滤模块收到的不同请求包括 新的请求会话、内嵌对象请求会话和/或历史请求会话。
11.如权利要求9所述的识别系统,其特征在于,所述过滤模块,用于收到不同请求,根据当前时间,淘汰已经停止的会话,删除相应数据结构。
12.如权利要求10所述的识别系统,其特征在于,所述过滤模块,还用于收到内嵌请求会话时,该请求来自一个新请求会话,为该会话新建数据结构,并设该会话的第一个请求URL为空,获取首请求为空的异常度,如果异常度大于可疑判别阈值,可疑次数计数加1,根据当前时间,淘汰已经停止的会话,删除相应数据结构。
13.如权利要求10所述的识别系统,其特征在于,所述过滤模块,还用于收到新的请求会话,为该会话新建数据结构,并设该会话的第一个请求为当前请求,获取该请求作为会话首请求的可疑度,如果可疑度大于可疑判别阈值,可疑次数计数加1,如果可疑次数计数大于可疑判别阈值,则认为该会话为爬虫。
14.如权利要求10所述的识别系统,其特征在于,所述过滤模块,还用于收到历史请求会话时,获取计算请求转换可疑度,如果可疑度大于可疑判别阈值,可疑次数计数加1,如果可疑次数计数大于可疑判别阈值,则认为该会话为爬虫。
15.一种网络爬虫识别方法,其特征在于,包括如下步骤步骤100,用于保存进入系统的请求,在系统开始运行时,所述请求执行步骤200,在训练时间结束,该请求执行步骤300 ;步骤200,将所述请求进行训练以及学习相应的请求,进行可疑度运算; 步骤300,分析从步骤200提交的请求,识别爬虫,记录其源地址,依据源地址进行过滤,对来自爬虫地址的数据进行丢弃;步骤400,转发步骤200、300允许通过的请求。
16.如权利要求15所述的识别方法,其特征在于,所述步骤200还包括步骤201,初始化参数,设定训练时间阈值,收到不同请求,根据所述不同请求建立数据结构。
17.如权利要求16所述的识别方法,其特征在于,所述步骤201收到的不同请求包括 新的请求会话、内嵌对象请求会话和/或历史请求会话。
18.如权利要求16所述的识别方法,其特征在于,所述步骤201还包括,步骤202,收到的不同请求时,根据当前时间,淘汰已经不活跃的会话,删除相应数据结构。
19.如权利要求18所述的识别方法,其特征在于,所述步骤202还包括,步骤203,如果收到历史请求会话,找到对应请求会话的数据结构,记录该请求会话的 URL,为该请求会话的前一个请求的URL,与该请求会话的URL计数加1,执行步骤204 ; 步骤204,检测训练时间,如果训练时间结束执行步骤205,如果未结束执行步骤202 ; 步骤205,进行可疑度运算。
20.如权利要求18所述的识别方法,其特征在于,所述步骤202还包括, 步骤206,如果收到内嵌对象请求会话,执行步骤207 ;步骤207,为该请求会话新建一个数据结构,执行步骤208 ;步骤208,为该请求会话新建数据结构,并设该请求会话的第一个请求会话为空,同时空为该请求会话的第一个请求会话的计数加1,执行步骤209 ;步骤209,检测训练时间,如果训练时间结束执行步骤210,如果未结束执行步骤202 ; 步骤210,进行可疑度运算。
21.如权利要求18所述的识别方法,其特征在于,所述步骤202还包括,步骤211,收到新的请求会话,为该会话建立相应的数据结构,并记录该请求会话的 URL,执行步骤212 ;步骤212,该请求会话作为会话的第一个请求的次数加1,执行步骤213 ; 步骤213,检测训练时间,如果训练时间结束执行步骤214,如果未结束执行步骤202 步骤214,进行可疑度运算。
22.如权利要求15、19、20或,21所述的识别方法,其特征在于,所述可疑度运算为,对会话的一个请求,设所有请求计数的最大值为M,那么对一个计数为X的请求,其可疑度为 1-X/M ;对一个请求URL,其所有后续请求URL计数的最大值为M,那么对一个请求计数为X 的URL,其访问请求转换可疑度为1-X/M,通过所有页面,作为会话第一个请求的计数,设所有请求的最大值为M,那么对一个计数为X的请求,其作为一个会话首请求的可疑度为I-X/ M,其中M为最大化网页页面统计次数、X为单一网页页面统计次数。
23.如权利要求15所述的识别方法,其特征在于,所述步骤300还包括步骤301,初始化参数设定可疑判别阈值、可疑次数计数、可疑次数阈值,不活跃会话淘汰时间阈值,收到不同请求,根据所述不同请求建立数据结构。
24.如权利要求23所述的识别方法,其特征在于,所述步骤301收到的不同请求包括 新的请求会话、内嵌对象请求会话和/或历史请求会话。
25.如权利要求23所述的识别方法,其特征在于,所述步骤301还包括,步骤302,收到不同请求,根据当前时间,淘汰已经停止的会话,删除相应数据结构。
26.如权利要求25所述的识别方法,其特征在于,所述步骤302还包括, 步骤303,收到内嵌请求会话时,执行步骤304 ;步骤304,该请求来自一个新请求会话,执行步骤305,如果不是新请求会话执行步骤302 ;步骤305,为该请求会话新建数据结构,并设该会话的第一个请求URL为空,执行步骤306 ;步骤306,获取首请求为空的异常度,如果异常度大于可疑判别阈值,可疑次数计数加 1,执行步骤302。
27.如权利要求25所述的识别方法,其特征在于,所述步骤302还包括, 步骤307,收到新的请求会话,执行步骤308 ;步骤308,为该会话新建数据结构,并设该会话的第一个请求为当前请求,执行步骤309 ;步骤309,获取该请求作为会话首请求的可疑度,如果可疑度大于可疑判别阈值,执行步骤310,如果不大于可疑判别阈值,执行步骤302 ; 步骤310,可疑次数计数加1,执行步骤311 ;步骤311,如果可疑次数计数大于可疑判别阈值,则认为该会话为爬虫,如果不大于可疑判别阈值,执行步骤302。
28.如权利要求25所述的识别方法,其特征在于,所述步骤302还包括, 步骤312,收到历史请求会话时,获取计算请求转换可疑度,执行步骤313 ;步骤313,如果可疑度大于可疑判别阈值,执行步骤314,不大于可疑判别阈值,执行步骤 302 ;步骤314,可疑次数计数加1,执行步骤315 ;步骤315,如果可疑次数计数大于可疑判别阈值,则认为该请求会话为爬虫,如果不大于可疑判别阈值,执行步骤302。
全文摘要
本发明涉及一种网络爬虫识别系统及方法,其特征在于,包括缓冲模块,用于保存进入系统的请求,在系统开始运行时,所述请求发送至训练模块,在训练时间结束,该请求发送至识别模块;训练模块,用于将所述请求进行训练以及学习相应的请求,进行可疑度运算;识别模块,用于分析提交至识别模块的请求,识别爬虫,记录其源地址,依据源地址进行过滤,对来自爬虫地址的数据进行丢弃;转发模块,用于转发训练模块以及识别模块允许通过的请求。
文档编号G06F17/30GK102495861SQ201110378160
公开日2012年6月13日 申请日期2011年11月24日 优先权日2011年11月24日
发明者云晓春, 张永铮, 肖军 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1