一种投毒式的防爬方法、系统、终端及介质与流程

文档序号:18160810发布日期:2019-07-13 09:19阅读:328来源:国知局
一种投毒式的防爬方法、系统、终端及介质与流程

本发明涉及数据处理技术领域,具体涉及一种投毒式的防爬方法、系统、终端及介质。



背景技术:

当下很多公司或个人都通过网络爬虫从万维网上采集数据,对此各大站点通常都加入防爬机制,常见的防爬手段有监测ip的频率,分析http请求头信息,用验证码等,这些方法都有各自的缺点,其缺点分别为:

监测ip频率这种防爬一般通过日志分析ip的请求频率,设置规定时间内的阈值,超过阈值后就加入黑名单,此时再请求可能就会超时或者返回错误页。但是这种防爬策略如果使用代理ip就可以绕过;

分析http请求头信息一般是判断user-agent是否合理,referer是否合理,等一些参数来判断是否是爬虫,由于请求头参数都可以修改,所以这种判断依据也很难发现爬虫;

对于输入验证码这种方式,由于爬虫不能自动识别正确的验证码,确实拦截了爬虫,但是给用户造成的体验也不太友好。



技术实现要素:

针对现有技术中的缺陷,本发明实施例提供的一种投毒式的防爬方法、系统、终端及介质,能在客户端更换代理ip和修改请求头信息后,能及时发现该请求为网络爬虫,及时发现和拦截网络爬虫,用户体验好。

为了解决上述技术问题,提出以下技术方案:

第一方面,本发明实施例提供一种投毒式的防爬方法,包括:

服务端的多个网页服务器启动时从消息队列中获取加密函数对应的字符串值,所述加密函数用于生成随机码;

服务端获取客户端的请求,判断所述请求是否携带随机码,根据是否携带随机码判断客户端是否为首次请求,

若是,则返回首页给客户端;

若否,则根据携带的随机码判断是否为网络爬虫,若为网络爬虫,返回错误数据给客户端。

可选地,根据携带的随机码判断是否为爬虫的具体方法为:将客户端携带的随机码负载到其中一个网页服务器,判断随机码是否符合当前服务器生成随机码的规则,如果不符合,返回错误数据给客户端。

可选地,客户端的页面包括首页、查询列表页和详情页。

第二方面,本发明实施例提供的一种投毒式的防爬系统,包括客户端和服务端,所述服务端包括第一获取模块、第二获取模块和分析模块,

所述第一获取模块用于在多个网页服务器启动时从消息队列中获取加密函数对应的字符串值,所述加密函数用于生成随机码;

所述第二获取模块用于获取客户端的请求;

所述分析模块用于根据客户端的请求是否携带随机码进行分析,根据携带的随机码判断客户端是否为首次请求,若是,则返回首页给客户端,若否,则根据携带的随机码判断是否为网络爬虫,若为网络爬虫,返回错误数据给客户端。

可选地,所述分析模块根据携带的随机码判断是否为爬虫的具体方法为:将客户端携带的随机码负载到其中一个网页服务器,判断随机码是否符合当前服务器生成随机码的规则,如果不符合,返回错误数据给客户端。

可选地,客户端的页面包括首页、查询列表页和详情页。

第三方面,本发明实施例提供的一种计算机终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述实施例描述的方法的步骤。

第四方面,本发明实施例提供的一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述实施例描述的方法的步骤。

本发明的有益效果:

本发明实施例提供的一种投毒式的防爬方法、系统、终端及介质,能在客户端更换代理ip和修改请求头信息后,能及时发现该请求为网络爬虫,及时发现和拦截网络爬虫,用户体验好。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1示出了本发明第一实施例所提供的一种投毒式的防爬方法的流程图;

图2示出了本发明第二实施例所提供的一种投毒式的防爬系统的结构示意图;

图3示出了本发明第三实施例所提供的一种计算机终端的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

如图1所示,示出了本发明第一实施例提供的一种投毒式的防爬方法的流程图,该方法适用于服务器进行数据处理,方法包括以下步骤:

s1:服务端的多个网页服务器启动时从消息队列中获取加密函数对应的字符串值,所述加密函数用于生成随机码;

s2:服务端获取客户端的请求,判断所述请求是否携带随机码,根据是否携带随机码判断客户端是否为首次请求,

s3:若是,则返回首页给客户端;

s4:若否,则根据携带的随机码判断是否为网络爬虫,若为网络爬虫,返回错误数据给客户端。

在具体实施过程中,服务端处理步骤s1之前,技术人员会预先编写多套js加密函数用来生成随机码,将js加密函数作为一个字符串存入redis队列中。服务端的多个网页服务器启动时分别从redis队列中拉取对应的字符串值(js加密函数)。将此字符串赋值给项目的一个全局标量,用于以后返回给前端。同时将此字符串再插入redis队列底部,用于下次服务重启拉取。客户端页面分成三大块,首页、查询列表页、详情页(详情页不做防爬)。当客户端发起请求到服务端时,在反向代理层使用用户ip来做hash,以保证同一个ip的请求落在同一个网页服务器上。服务端收到请求后判断是否携带随机码,如果没有,那么返回首页给客户端,并且返回js加密函数字符串给客户端。客户端携带随机码请求时,负载到某个网页服务器后判断随机码是否符合当前服务器生成随机码的规则,如果不符合,返回错误数据给客户端。

本发明实施例提供的一种投毒式的防爬方法,能在客户端更换代理ip和修改请求头信息后,也能及时发现该请求为网络爬虫,及时发现和拦截网络爬虫,用户体验好。

如图2所示,示出了本发明第二实施例提供的一种投毒式的防爬系统的结构示意图,该系统包括客户端和服务端,客户端与服务端进行信息交互,所述服务端包括第一获取模块、第二获取模块和分析模块,

所述第一获取模块用于在多个网页服务器启动时从消息队列中获取加密函数对应的字符串值,所述加密函数用于生成随机码;

所述第二获取模块用于获取客户端的请求;

所述分析模块用于根据客户端的请求是否携带随机码进行分析,根据携带的随机码判断客户端是否为首次请求,若是,则返回首页给客户端,若否,则根据携带的随机码判断是否为网络爬虫,若为网络爬虫,返回错误数据给客户端。

在具体实施过程中,服务端处理数据之前,技术人员会预先编写多套js加密函数用来生成随机码,将js加密函数作为一个字符串存入redis队列中。服务端的多个网页服务器启动时分别从redis队列中拉取对应的字符串值(js加密函数)。将此字符串赋值给项目的一个全局标量,用于以后返回给前端。同时将此字符串再插入redis队列底部,用于下次服务重启拉取。客户端页面分成三大块,首页、查询列表页、详情页(详情页不做防爬)。当客户端发起请求到服务端时,在反向代理层使用用户ip来做hash,以保证同一个ip的请求落在同一个网页服务器上。服务端收到请求后判断是否携带随机码,如果没有,那么返回首页给客户端,并且返回js加密函数字符串给客户端。客户端携带随机码请求时,负载到某个网页服务器后判断随机码是否符合当前服务器生成随机码的规则,如果不符合,返回错误数据给客户端,影响网络爬虫的数据库环境。

本发明实施例提供的一种投毒式的防爬系统,能在客户端更换代理ip和修改请求头信息后,也能及时发现该请求为网络爬虫,及时发现和拦截网络爬虫,用户体验好。

在本发明还提供一种计算机终端的实施例,如图3所示,示出了计算机设备的结构示意图,该设备包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一实施例描述的方法的步骤。

应当理解,在本发明实施例中,所称处理器可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

输入设备可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备可以包括显示器(lcd等)、扬声器等。

该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。

具体实现中,本发明实施例中所描述的处理器、输入设备、输出设备可执行本发明实施例提供的方法实施例所描述的实现方式,也可执行本发明实施例所描述的系统实施例的实现方式,在此不再赘述。

在本发明还提供一种计算机可读存储介质的实施例,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一实施例描述的方法的步骤。

所述计算机可读存储介质可以是前述实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1