本发明专利技术公开了一种网络爬虫的识别方法及系统,该识别方法包括:客户端将预设URL链接的请求发送至服务器;服务器根据请求生成一第一密钥值,并将加密后的第一密钥值以及生成的JS解密脚本发送至客户端;客户端根据加密后的第一密钥值和JS解密脚本生成第二密钥值,并将其发送至服务器;服务器判断是否存在与第二密钥值相同的第一密钥值,若否,则确定客户端对应的用户为网络爬虫。与现有技术相比,本发明专利技术可以使得网络爬虫在首次访问服务器时就将其识别出来,无需进行大量访问频率的检测,节约了CPU资源,提高了识别效率。同时,无需对不同URL链接的请求进行第一密钥值的储存,大大节约了服务器的存储空间。
【技术实现步骤摘要】
本专利技术涉及计算机
,特别涉及一种网络爬虫的识别方法及系统。
技术介绍
随着互联网的发展,目前互联网上的爬虫量日益增加,爬虫会伪造用户行为,不断地访问服务器从而获取信息,这样会大大拖慢服务器的运行速度,尤其是当请求的链接需要大量的计算才能得出的时候,同时还会有信息被批量获取的风险。目前主流的反爬虫手段是根据访问频率,对高频率访问的客户端IP地址进行一定的限制。这种做法有以下缺点:首先,需要记录大量的数据,对服务器的存储空间有极高的要求;其次,具有一定的滞后性,需要爬虫访问一定的时间才可以确定对方是爬虫,而这个时候爬虫已经拿到足够的信息了;最后,由于计算量频繁,即使没有爬虫也需要不断地运算,对服务器造成的压力很大。
技术实现思路
本专利技术要解决的技术问题是为了克服现有技术中根据访问频率识别网络爬虫存在占用服务器存储空间、具有滞后性以及计算量频繁的缺陷,提供一种网络爬虫首次访问就能被识别以及节约服务器存储空间的网络爬虫识别方法及系统。本专利技术是通过下述技术方案来解决上述技术问题的:一种网络爬虫的识别方法,其特点在于,包括以下步骤:S1、客户端将一预设URL(UniformResourceLocator,统一资源定位符)链接的请求发送至服务器;S2、该服务器根据该预设URL链接的请求生成一第一密钥值,在对该第一密钥值进行加密的过程中生成一JS(JavaScript)解密脚本,并将加密后的第一密钥值以及该JS解密脚本发送至该客户端,其中,该JS解密脚本用于对该加密后的第一密钥值进行解密;S3、该客户端根据该加密后的第一密钥值和该JS解密脚本生成一第二密钥值,并将该第二密钥值发送至该服务器;S4、该服务器判断是否存在与该第二密钥值相同的第一密钥值,若否,则确定该客户端对应的用户为网络爬虫。本方案中,向服务器发送请求的客户端对应的用户可以为正常用户,也可以为网络爬虫。步骤S3中,当客户端对应的用户为正常用户时,客户端基于加密后的第一密钥值运行JS解密脚本生成第二密钥值,且该第二密钥值与该第一密钥值相同;当客户端对应的用户为网络爬虫时,客户端不识别JS解密脚本,此时客户端生成的第二密钥值与服务器生成的第一密钥值不相同,或者第二密钥值为空,因此可以证明客户端向服务器发送的预设URL链接的请求是伪造的。本方案通过将服务器生成的第一密钥值与客户端生成的第二密钥值进行比较,并根据比较结果实现网络爬虫的识别,可以使得网络爬虫在首次访问服务器的时候就将其识别出来,与现有技术相比,无需进行大量访问频率的检测,节约了CPU(中央处理器)资源,提高了识别效率。本方案中,服务器每次接收到的预设URL链接的请求可以相同,也可以不同,但是服务器在每次接收到预设URL链接时都会基于预设URL链接重新生成第一密钥值,因此服务器无需针对不同URL链接的请求进行第一密钥值的储存,大大节约了服务器的存储空间。其中,预设URL链接可以根据需要自行设定,例如可以将其设置为/domestic/cas/key,具体地,在mvc站点中,需要新增一个cas的controller,并增加一个action,名字为key。较佳地,将步骤S2替换为步骤S2’:S2’、该服务器根据该预设URL链接的请求每隔一时间段生成一个第一密钥值,在对当前第一密钥值进行加密的过程中生成一JS解密脚本,并将加密后的第一密钥值以及该JS解密脚本发送至该客户端,其中,该JS解密脚本用于对该加密后的第一密钥值进行解密。本方案中,为了避免由于网络延迟导致误伤正常用户,服务器生成多个第一密钥值,步骤S4中服务器判断多个第一密钥值中是否存在与该第二密钥值相同的第一密钥值。其中,可以根据网络的具体情况来设置该时间段。例如,当网络的速度较快时,可以将时间段设置地较长,如5分钟;当网络的速度较慢时,可以将时间段设置地较短,如3分钟。较佳地,步骤S4还包括:该服务器在判断不存在与该第二密钥值相同的第一密钥值时,将该客户端发出的所有请求进行拦截,或,向该客户端发送一虚假信息。本方案中,当服务器判断不存在与该第二密钥值相同的第一密钥值时,确定该客户端对应的用户为网络爬虫,这时可以将客户端发出的所有请求进行拦截,或者可以向客户端发送虚假信息,以欺骗网络爬虫。其中,虚假信息可以根据需要自行设定。较佳地,步骤S3还包括:该客户端将一目标URL链接的请求发送至该服务器;步骤S4还包括:该服务器在判断存在与该第二密钥值相同的第一密钥值时,根据该目标URL链接的请求查找与该目标URL链接所对应的一目标信息,并将该目标信息发送至该客户端。本方案中,要想获得服务器上的目标信息,客户端需要向服务器发送相应的目标URL链接的请求。当服务器确定客户端对应的用户不是网络爬虫时,才会将与目标URL链接所对应的目标信息发送至客户端,有效防止了服务器的信息泄露。较佳地,第一密钥值和第二密钥值均为伪随机值。本方案中,服务器可以利用随机函数生成第一密钥值,客户端也可以利用随机函数生成第二密钥值,由于计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的,这个可预见的结果出现的概率是100%,因此用计算机随机函数所产生的随机值并不随机,是伪随机值。也就是说,本方案中的第一密钥值和第二密钥值为伪随机值。本专利技术还提供一种网络爬虫的识别系统,其特点在于,包括一客户端以及一服务器;该客户端用于将一预设URL链接的请求发送至该服务器;该服务器用于根据该预设URL链接的请求生成一第一密钥值,在对该第一密钥值进行加密的过程中生成一JS解密脚本,并将加密后的第一密钥值以及该JS解密脚本发送至该客户端,其中,该JS解密脚本用于对该加密后的第一密钥值进行解密;该客户端用于根据该加密后的第一密钥值和该JS解密脚本生成一第二密钥值,并将该第二密钥值发送至该服务器;该服务器用于判断是否存在与该第二密钥值相同的第一密钥值,若否,则确定该客户端对应的用户为网络爬虫。较佳地,该服务器还用于根据该预设URL链接的请求每隔一时间段生成一个第一密钥值,在对当前第一密钥值进行加密的过程中生成一JS解密脚本,并将加密后的第一密钥值以及该JS解密脚本发送至该客户端,其中,该JS解密脚本用于对该加密后的第一密钥值进行解密。较佳地,该服务器还用于在判断不存在与该第二密钥值相同的第一密钥
...
【技术保护点】
一种网络爬虫的识别方法,其特征在于,包括以下步骤:S1、客户端将一预设URL链接的请求发送至服务器;S2、该服务器根据该预设URL链接的请求生成一第一密钥值,在对该第一密钥值进行加密的过程中生成一JS解密脚本,并将加密后的第一密钥值以及该JS解密脚本发送至该客户端,其中,该JS解密脚本用于对该加密后的第一密钥值进行解密;S3、该客户端根据该加密后的第一密钥值和该JS解密脚本生成一第二密钥值,并将该第二密钥值发送至该服务器;S4、该服务器判断是否存在与该第二密钥值相同的第一密钥值,若否,则确定该客户端对应的用户为网络爬虫。
【技术特征摘要】
1.一种网络爬虫的识别方法,其特征在于,包括以下步骤:
S1、客户端将一预设URL链接的请求发送至服务器;
S2、该服务器根据该预设URL链接的请求生成一第一密钥值,在对该
第一密钥值进行加密的过程中生成一JS解密脚本,并将加密后的第一密钥
值以及该JS解密脚本发送至该客户端,其中,该JS解密脚本用于对该加密
后的第一密钥值进行解密;
S3、该客户端根据该加密后的第一密钥值和该JS解密脚本生成一第二
密钥值,并将该第二密钥值发送至该服务器;
S4、该服务器判断是否存在与该第二密钥值相同的第一密钥值,若否,
则确定该客户端对应的用户为网络爬虫。
2.如权利要求1所述的识别方法,其特征在于,将步骤S2替换为步骤
S2’:
S2’、该服务器根据该预设URL链接的请求每隔一时间段生成一个第一
密钥值,在对当前第一密钥值进行加密的过程中生成一JS解密脚本,并将
加密后的第一密钥值以及该JS解密脚本发送至该客户端,其中,该JS解密
脚本用于对该加密后的第一密钥值进行解密。
3.如权利要求1或2所述的识别方法,其特征在于,步骤S4还包括:
该服务器在判断不存在与该第二密钥值相同的第一密钥值时,将该客户端发
出的所有请求进行拦截,或,向该客户端发送一虚假信息。
4.如权利要求3所述的识别方法,其特征在于,
步骤S3还包括:该客户端将一目标URL链接的请求发送至该服务器;
步骤S4还包括:该服务器在判断存在与该第二密钥值相同的第一密钥值
时,根据该目标URL链接的请求查找与该目标URL链接所对应的一目标信
息,并将该目标信息发送至该客户端。
5.如权利要求1所述的识别方法,其特征在于,第一密钥值和第二密
钥值均...
【专利技术属性】
技术研发人员:崔广宇,李巍,
申请(专利权)人:携程计算机技术上海有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。