网络爬虫的识别方法及系统的制作方法

文档序号:9814261阅读:345来源:国知局
网络爬虫的识别方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别涉及一种网络爬虫的识别方法及系统。
【背景技术】
[0002]随着互联网的发展,目前互联网上的爬虫量日益增加,爬虫会伪造用户行为,不断地访问服务器从而获取信息,这样会大大拖慢服务器的运行速度,尤其是当请求的链接需要大量的计算才能得出的时候,同时还会有信息被批量获取的风险。
[0003]目前主流的反爬虫手段是根据访问频率,对高频率访问的客户端IP地址进行一定的限制。这种做法有以下缺点:首先,需要记录大量的数据,对服务器的存储空间有极高的要求;其次,具有一定的滞后性,需要爬虫访问一定的时间才可以确定对方是爬虫,而这个时候爬虫已经拿到足够的信息了;最后,由于计算量频繁,即使没有爬虫也需要不断地运算,对服务器造成的压力很大。

【发明内容】

[0004]本发明要解决的技术问题是为了克服现有技术中根据访问频率识别网络爬虫存在占用服务器存储空间、具有滞后性以及计算量频繁的缺陷,提供一种网络爬虫首次访问就能被识别以及节约服务器存储空间的网络爬虫识别方法及系统。
[0005]本发明是通过下述技术方案来解决上述技术问题的:
[0006]—种网络爬虫的识别方法,其特点在于,包括以下步骤:
[0007]S1、客户端将一预设URL(Uniform Resource Locator,统一资源定位符)链接的请求发送至服务器;
[0008]S2、该服务器根据该预设URL链接的请求生成一第一密钥值,在对该第一密钥值进行加密的过程中生成一 JS(JavaScript)解密脚本,并将加密后的第一密钥值以及该JS解密脚本发送至该客户端,其中,该JS解密脚本用于对该加密后的第一密钥值进行解密;
[0009]S3、该客户端根据该加密后的第一密钥值和该JS解密脚本生成一第二密钥值,并将该第二密钥值发送至该服务器;
[0010]S4、该服务器判断是否存在与该第二密钥值相同的第一密钥值,若否,则确定该客户端对应的用户为网络爬虫。
[0011]本方案中,向服务器发送请求的客户端对应的用户可以为正常用户,也可以为网络爬虫。
[0012]步骤S3中,当客户端对应的用户为正常用户时,客户端基于加密后的第一密钥值运行JS解密脚本生成第二密钥值,且该第二密钥值与该第一密钥值相同;当客户端对应的用户为网络爬虫时,客户端不识别JS解密脚本,此时客户端生成的第二密钥值与服务器生成的第一密钥值不相同,或者第二密钥值为空,因此可以证明客户端向服务器发送的预设URL链接的请求是伪造的。
[0013]本方案通过将服务器生成的第一密钥值与客户端生成的第二密钥值进行比较,并根据比较结果实现网络爬虫的识别,可以使得网络爬虫在首次访问服务器的时候就将其识别出来,与现有技术相比,无需进行大量访问频率的检测,节约了CPU(中央处理器)资源,提高了识别效率。
[0014]本方案中,服务器每次接收到的预设URL链接的请求可以相同,也可以不同,但是服务器在每次接收到预设URL链接时都会基于预设URL链接重新生成第一密钥值,因此服务器无需针对不同URL链接的请求进行第一密钥值的储存,大大节约了服务器的存储空间。
[0015]其中,预设URL链接可以根据需要自行设定,例如可以将其设置为/domestic/cas/key,具体地,在mvc站点中,需要新增一个cas的control Ier,并增加一个act 1n,名字为key。
[0016]较佳地,将步骤32替换为步骤S2’:
[0017]S2’、该服务器根据该预设URL链接的请求每隔一时间段生成一个第一密钥值,在对当前第一密钥值进行加密的过程中生成一 JS解密脚本,并将加密后的第一密钥值以及该JS解密脚本发送至该客户端,其中,该JS解密脚本用于对该加密后的第一密钥值进行解密。
[0018]本方案中,为了避免由于网络延迟导致误伤正常用户,服务器生成多个第一密钥值,步骤S4中服务器判断多个第一密钥值中是否存在与该第二密钥值相同的第一密钥值。其中,可以根据网络的具体情况来设置该时间段。例如,当网络的速度较快时,可以将时间段设置地较长,如5分钟;当网络的速度较慢时,可以将时间段设置地较短,如3分钟。
[0019]较佳地,步骤S4还包括:该服务器在判断不存在与该第二密钥值相同的第一密钥值时,将该客户端发出的所有请求进行拦截,或,向该客户端发送一虚假信息。
[0020]本方案中,当服务器判断不存在与该第二密钥值相同的第一密钥值时,确定该客户端对应的用户为网络爬虫,这时可以将客户端发出的所有请求进行拦截,或者可以向客户端发送虚假信息,以欺骗网络爬虫。其中,虚假信息可以根据需要自行设定。
[0021 ]较佳地,步骤S3还包括:该客户端将一目标URL链接的请求发送至该服务器;
[0022]步骤S4还包括:该服务器在判断存在与该第二密钥值相同的第一密钥值时,根据该目标URL链接的请求查找与该目标URL链接所对应的一目标信息,并将该目标信息发送至该客户端。
[0023]本方案中,要想获得服务器上的目标信息,客户端需要向服务器发送相应的目标URL链接的请求。当服务器确定客户端对应的用户不是网络爬虫时,才会将与目标URL链接所对应的目标信息发送至客户端,有效防止了服务器的信息泄露。
[0024]较佳地,第一密钥值和第二密钥值均为伪随机值。本方案中,服务器可以利用随机函数生成第一密钥值,客户端也可以利用随机函数生成第二密钥值,由于计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的,这个可预见的结果出现的概率是100%,因此用计算机随机函数所产生的随机值并不随机,是伪随机值。也就是说,本方案中的第一密钥值和第二密钥值为伪随机值。
[0025]本发明还提供一种网络爬虫的识别系统,其特点在于,包括一客户端以及一服务器;
[0026]该客户端用于将一预设URL链接的请求发送至该服务器;
[0027]该服务器用于根据该预设URL链接的请求生成一第一密钥值,在对该第一密钥值进行加密的过程中生成一 JS解密脚本,并将加密后的第一密钥值以及该JS解密脚本发送至该客户端,其中,该JS解密脚本用于对该加密后的第一密钥值进行解密;
[0028]该客户端用于根据该加密后的第一密钥值和该JS解密脚本生成一第二密钥值,并将该第二密钥值发送至该服务器;
[0029]该服务器用于判断是否存在与该第二密钥值相同的第一密钥值,若否,则确定该客户端对应的用户为网络爬虫。
[0030]较佳地,该服务器还用于根据该预设URL链接的请求每隔一时间段生成一个第一密钥值,在对当前第一密钥值进行加密的过程中生成一 JS解密脚本,并将加密后的第一密钥值以及该JS解密脚本发送至该客户端,其中,该JS解密脚本用于对该加密后的第一密钥值进行解密。
[0031]较佳地,该服务器还用于在判断不存在与该第二密钥值相同的第一密钥值时,将该客户端发出的所有请求进行拦截,或,向该客户端发送一虚假信息。
[0032]较佳地,该客户端还用于将一目标URL链接的请求发送至该服务器;
[0033]该服务器还用于在判断存在与该第二密钥值相同的第一密钥值时,根据该目标URL链接的请求查找与该目标URL链接所对应的一目标信息,并将该目标信息发送至该客户端。
[0034]较佳地,第一密钥值和第二密钥值均为伪随机值。
[0035]在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
[0036]本发明的积极进步效果在于:与现有技术相比,本发明通过将服务器生成的第一密钥值与客户端生成的第二密钥值进行比较,并根据比较结果实现网络爬虫的识别,可以使得网络爬虫在首次访问服务器的时候就将其识别出来,无需进行大量访问频率的检测,节约了 CPU资源,提高了识别效率。同时,服务器无需针对不同URL链接的请求进行第一密钥值的储存,大大节约了服务器的存储空间。
【附图说明】
[0037]图1为本发明实施例1的网络爬虫的识别方法流程图。
[0038]图2为本发明实施例2的网络爬虫的识别方法流程图。
【具体实施方式】
[0039]下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0040]实施例1
[0041]本实施例提供一种网络爬虫的识别方法,如图1所示,包括以下步骤:
[0042]步骤101、客户端将预设URL链接的请求发送至服务器;
[0043]步骤102、该服务器根据该预设URL链接的请求生成一第一密钥值,在对该第一密钥值进行加密的过程中生成一 JS解密脚本,并将加密后的第一密钥值以及该JS解密脚本发送至该客户端,其中,该JS解密脚本用于对该加密后的第一密钥值进行解密;
[0044]步骤103、该客户端根据该加密后的第一密钥值和该JS解密脚本生成一第二密钥值,并将该第二密钥值以及目标URL链接的请求发送至该服务器;
[0045]步骤104、该服务器判断是否存在与该第二密钥值相同的第一密钥值,若是,则执行步骤105,若否,则执行步骤106;
[0046]步骤105、该服务器根据该目标URL链接的请求查找与该目
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1