一种反爬虫方法、装置、处理器及计算机可读介质[发明专利]
(12)发明专利申请
(10)申请公布号 CN 112073412 A(43)申请公布日 2020.12.11
(21)申请号 202010932988.0(22)申请日 2020.09.08
(71)申请人 北京天融信网络安全技术有限公司
地址 100085 北京市海淀区上地东路1号院
3号楼四层
申请人 北京天融信科技有限公司
北京天融信软件有限公司(72)发明人 唐金满
(74)专利代理机构 北京金信知识产权代理有限
公司 11225
代理人 孙勤 喻嵘(51)Int.Cl.
H04L 29/06(2006.01)
权利要求书1页 说明书6页 附图2页
(54)发明名称
一种反爬虫方法、装置、处理器及计算机可读介质(57)摘要
本申请公开了一种反爬虫方法、装置、处理器及计算机可读介质,所述方法包括:接收访问请求;采用M个爬虫检测机制对所述访问请求进行检测,获取M个响应结果;采用预设裁决算法针对M个响应结果进行裁决,获得裁决结果;基于所述裁决结果为所述访问请求返回对应的数据。本申请实施例的反爬虫方法通过采用多个爬虫检测机制对访问请求进行检测,根据获得的多个响应结果根据需要选择相应的算法进行裁决计算,以基于裁决结果针对访问请求返回对应的数据,这样避免了单一爬虫检测机制可能造成的误判,提高了爬虫检测的准确性,还可以根据应用场景选用适应的算法进行裁决,提升了安全性,用户体验好。
CN 112073412 ACN 112073412 A
权 利 要 求 书
1/1页
1.一种反爬虫方法,其特征在于,所述方法包括:接收访问请求;
采用M个爬虫检测机制对所述访问请求进行检测,获取M个响应结果;采用预设裁决算法针对M个响应结果进行裁决,获得裁决结果;基于所述裁决结果为所述访问请求返回对应的数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在接收到访问请求后,通过预设选择算法从预设的爬虫检测机制集合中选取M个不重复的爬虫检测机制的组合用于检测。
3.根据权利要求2所述的方法,其特征在于,所述选择算法包括随机游走算法;
所述通过预设选择算法从爬虫检测机制集合中选取M个不重复的爬虫检测机制的组合包括:
将所述爬虫检测机制集合中的爬虫检测机制分布于一维的网格节点上,随机选取一种爬虫检测机制为起始点,在相邻的节点集合中任意选取一个节点进行下一跳,以下一跳的节点继续跳转,以基于M个随机游走的节点生成M个不重复的爬虫检测机制的组合。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:基于预设条件,通过预设选择算法从预设的爬虫检测机制集合中多次抓取M个不重复的爬虫检测机制的组合用于检测。
5.根据权利要求1所述的方法,其特征在于,所述裁决算法包括大数表决算法或一致性表决算法。
6.根据权利要求1所述的方法,其特征在于,所述基于所述裁决结果为所述访问请求返回对应的数据包括:
若所述裁决结果正常时,为所述访问请求返回第一数据;若所述裁决结果非正常时,为所述访问请求返回第二数据。7.一种爬虫检测装置,其特征在于,其包括:输入单元,用于接收访问请求;检测单元,采用M个爬虫检测机制对所述访问请求进行检测,获取M个响应结果;裁决单元,采用预设裁决算法针对M个响应结果进行裁决,获得裁决结果;输出单元,基于所述裁决结果为所述访问请求返回对应的数据。8.根据权利要求7所述的反爬虫装置,其特征在于,所述反爬虫装置还包括控制单元,用于通过预设选择算法从预设的爬虫检测机制集合中选取M个不重复的爬虫检测机制的组合用于检测。
9.一种处理器,包括:存储装置,其上存储有计算机程序;
当所述处理器执行所述存储装置上的计算机程序时,实现如权利要求1至6中任一项所述的反爬虫方法。
10.一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的反爬虫方法。
2
CN 112073412 A
说 明 书
一种反爬虫方法、装置、处理器及计算机可读介质
1/6页
技术领域
[0001]本申请涉及互联网技术领域,尤其涉及一种反爬虫方法、装置、处理器及计算机可读介质。
背景技术
[0002]随着互联网技术的迅速发展,大数据时代随之兴起,目前带着个人信息的数据在互联网上几乎随处可见,也有越来越多的企业关注着收集用户数据,爬虫技术也随之快速发展,同时衍生出许多恶意爬虫,例如:DDoS攻击,通过爬虫使网络服务在大量的暴力访问下,资源耗尽而停止提供服务;搜索互联网用户的个人资料,恶意用户获取后有可能实施诈骗;12306购票系统被恶意爬虫占用不停刷票,导致用户购买不到车票,对网络环境造成严重的影响。
[0003]现有技术中检测网络爬虫通常是根据爬虫的一个特征,通过设置阈值的方法来对访问行为进行检测,这样可能会出现爬虫检测的漏洞,导致网络爬虫检测的准确率降低;同时也会存在检测失误,当真实的用户访问请求的该特征超过设置的阈值时,会被误判断为网络爬虫,降低用户的体验感。发明内容
[0004]本申请的实施例提供了如下方案:[0005]一种反爬虫方法,包括:[0006]接收访问请求;
[0007]采用M个爬虫检测机制对所述访问请求进行检测,获取M个响应结果;[0008]采用预设裁决算法针对M个响应结果进行裁决,获得裁决结果;[0009]基于所述裁决结果为所述访问请求返回对应的数据。[0010]在一些实施例中,所述方法还包括:[0011]在接收到访问请求后,通过预设选择算法从预设的爬虫检测机制集合中选取M个不重复的爬虫检测机制的组合用于检测。[0012]在一些实施例中,所述选择算法包括随机游走算法;
[0013]所述通过预设选择算法从爬虫检测机制集合中选取M个不重复的爬虫检测机制的组合包括:
[0014]将所述爬虫检测机制集合中的爬虫检测机制分布于一维的网格节点上,随机选取一种爬虫检测机制为起始点,在相邻的节点集合中任意选取一个节点进行下一跳,以下一跳的节点继续跳转,以基于M个随机游走的节点生成M个不重复的爬虫检测机制的组合。[0015]在一些实施例中,所述方法还包括:基于预设条件,通过预设选择算法从预设的爬虫检测机制集合中多次抓取M个不重复的爬虫检测机制的组合用于检测。[0016]在一些实施例中,所述裁决算法包括大数表决算法或一致性表决算法。[0017]在一些实施例中,所述基于所述裁决结果为所述访问请求返回对应的数据包括:
3
CN 112073412 A[0018]
说 明 书
2/6页
若所述裁决结果正常时,为所述访问请求返回第一数据;
[0019]若所述裁决结果非正常时,为所述访问请求返回第二数据。[0020]本申请还提供了一种爬虫检测装置,其特征在于,其包括:[0021]输入单元,用于接收访问请求;[0022]检测单元,采用M个爬虫检测机制对所述访问请求进行检测,获取M个响应结果;[0023]裁决单元,采用预设裁决算法针对M个响应结果进行裁决,获得裁决结果;[0024]输出单元,基于所述裁决结果为所述访问请求返回对应的数据。[0025]在一些实施例中,所述反爬虫装置还包括控制单元,用于通过预设选择算法从预设的爬虫检测机制集合中选取M个不重复的爬虫检测机制的组合用于检测。[0026]本申请还提供了一种处理器,包括:[0027]存储装置,其上存储有计算机程序;
[0028]当所述处理器执行所述存储装置上的计算机程序时,实现如上所述的反爬虫方法。
[0029]本申请还提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的反爬虫方法。[0030]本申请实施例的有益效果在于:本申请实施例的反爬虫方法通过采用多个爬虫检测机制对访问请求进行检测,根据获得的多个响应结果根据需要选择相应的算法进行裁决计算,以基于裁决结果针对访问请求返回对应的数据,这样避免了单一爬虫检测机制可能造成的误判,提高了爬虫检测的准确性,还可以根据应用场景选用适应的算法进行裁决,提升了安全性,用户体验好。附图说明
[0031]图1为本申请实施例的反爬虫方法的流程图;[0032]图2为本申请实施例的反爬虫装置的框图。
具体实施方式
[0033]此处参考附图描述本申请的各种方案以及特征。[0034]应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
[0035]包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
[0036]通过下面参照附图对给定为非限制性实例的实施例的可选形式的描述,本申请的这些和其它特性将会变得显而易见。[0037]还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。[0038]当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得
4
CN 112073412 A
说 明 书
3/6页
更为显而易见。
[0039]此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。[0040]本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。[0041]图1示出了本申请实施例的反爬虫方法的流程图,该反爬虫方法可以应用在服务器,请参见图1所示,该反爬虫方法包括以下步骤:[0042]S101,接收访问请求。
[0043]本申请实施例提供反爬虫方法用于判断访问请求是否来自于网络爬虫,以根据判断结果,在该访问请求来自网络爬虫时,为该访问请求返回伪数据,并对网络爬虫所请求访问的信息进行相应的反爬策略限制。在本步骤中,接收到来自客户端的访问请求后,可以将访问请求复制为多份,以供多个爬虫检测机制对其进行检测。[0044]S102,采用M个爬虫检测机制对所述访问请求进行检测,获取M个响应结果。[0045]本步骤中,为确定访问请求是否来自网络爬虫,采用了M个爬虫检测机制对该访问请求进行检测,所涉及的爬虫检测机制可以包括根据网络爬虫的特征所设置的各种识别特征,例如,根据网络爬虫的访问目标特性所设置的相应识别特征,或者是网络爬虫的源服务所设置的相应识别特征,或者是根据网络爬虫访问的访问性能如访问频率等设定的多个不同的阈值,以避免单一阈值被爬虫绕过,等等,这里,本申请对具体的爬虫检测机制不做限制,能基于网络爬虫的特性,用于检测以识别出网络爬虫即可。采用M个爬虫检测机制对所述访问请求进行检测,可以避免单一爬虫检测机制可能被绕过而出现的漏洞,检测之后,相应的根据所采用的M个爬虫检测机制获取M个响应结果,所获取的M个响应结果包括三种情况,即,所述访问请求经过M个爬虫检测机制的检测,可能M个检测机制均认为该访问请求为网络爬虫发出,或者是M个检测机制均认为该访问请求为非网络爬虫发出,或者是M个检测机制中,有一部分检测机制检测后认为该访问请求为网络爬虫发出,另一部分监测机制检测后认为该访问请求为非网络爬虫发出,基于M个检测机制检测结果不一样的情况,需要对M个响应结果进行进一步的判断才能确认该访问请求是否为网络爬虫发出。[0046]S103,采用预设裁决算法针对M个响应结果进行裁决,获得裁决结果。[0047]在本步骤中,根据应用场景或用户需要,采用预设裁决算法对M个响应结果进行裁决,获取裁决结果,以确认该访问请求是否为网络爬虫发出。具体地,针对安全要求比较严格的数据,可以采用一致性表决的方式来进行裁决,也就是,在M个响应结果中,有一个响应结果认为该访问请求为网络爬虫发出,则裁定该访问请求是网络爬虫发出,输出裁决结果为非正常。由于M个爬虫检测机制不尽相同,各机制存在检测效率不同,检测准度不同,检测评分不同,检测项目不同等等情况。在一些实施例中,针对M个爬虫检测机制检测出的响应结果,可以进一步通过加权的方式进行裁决。[0048]S104,基于所述裁决结果为所述访问请求返回对应的数据。[0049]本步骤中,根据输出的裁决结果是否正常,为该访问请求返回对应的数据。具体
5
CN 112073412 A
说 明 书
4/6页
的,输出的裁决结果为正常时,返回与所述访问请求对应的数据;输出的裁决结果为非正常时,为该访问请求返回伪数据,并针对该访问请求的相关特征进行反爬策略限制,以限制其访问,避免其继续访问造成网络负担。[0050]一些实施例中,所述方法还包括:在接收到访问请求后,通过预设选择算法从预设的爬虫检测机制集合中选取M个不重复的爬虫检测机制的组合用于检测。爬虫检测机制可以包括根据网络爬虫的特征所设置的各种识别特征,可以包括,根据网络爬虫的访问目标特性所设置的相应识别特征,或者是网络爬虫的源服务所设置的相应识别特征,或者是根据网络爬虫访问的访问性能如访问频率等设定的多个不同的阈值,以避免单一阈值被爬虫绕过,等等,这里,本申请对具体的爬虫检测机制不做限制,能基于网络爬虫的特性,用于检测以识别出网络爬虫即可。预设的爬虫检测机制集合中包括尽可能多的爬虫监测机制的个数,至少超过M个的不重复的爬虫检测机制,以在检测过程中能随机的选取M个不重复的爬虫检测机制用于检测。[0051]进一步地,所述选择算法包括随机游走算法;
[0052]所述通过预设选择算法从爬虫检测机制集合中选取M个不重复的爬虫检测机制的组合包括:
[0053]将所述爬虫检测机制集合中的爬虫检测机制分布于一维的网格节点上,随机选取一种爬虫检测机制所在的网格节点为起始点,根据随机游走算法的概率分布,在相邻的节点集合中任意选取一个节点进行下一跳,以下一跳的节点继续跳转,可以按照预设的跳转规则进行跳转,也可以随机跳转。预设的跳转规则可以根据接收的访问请求的类型进行设定。在随机跳转过程中,可以适应性地调整M个不重复的爬虫检测机制的组合的选取次数。根据所需的M个不重复的爬虫检测机制,相应的设置M的值,来配置节点路径连线上的点的个数,以基于M个随机游走的节点生成M个不重复的爬虫检测机制的组合。通过随机游走算法,使得所抓取的M个不重复的爬虫检测机制具有不确定性,避免单一或重复的检测机制被网络爬虫绕过,反爬虫的策略随机性强,有效地提高了爬虫检测的准确性。[0054]一些实施例中,所述方法还包括:基于预设条件,通过预设选择算法从预设的爬虫检测机制集合中多次抓取M个不重复的爬虫检测机制的组合用于检测。预设条件可以包括电子设备或服务器的负载,或者是基于安全性的考量,设置预设的时间间隔,这样,在电子设备或服务器的负载不高时或是预设的时间间隔下,可以通过预设选择算法从预设的爬虫检测机制集合中多次随机抓取M个不重复的爬虫检测机制的组合用于检测。[0055]一些实施例中,所述裁决算法包括大数表决算法或一致性表决算法。所述裁决算法用于对获取的M个响应结果不一致时进行裁决,获得裁决结果,因此,可以根据实际应用的场景和/或用户的需要对裁决算法进行相应的选择。具体的,大数表决算法根据大数原则,其检测精度和适用广度较为适中,其在M个响应结果中,若认为所述访问请求为网络爬虫发出的响应结果在所有输出结果中占到超过一半的比例,那么这个响应结果会作为一致同意的结果,输出裁决结果为非正常;采用一致性表决算法时,检测精度较高,其在M个响应结果中,有一个响应结果认为该访问请求为网络爬虫发出,则裁定该访问请求是网络爬虫发出,输出裁决结果为非正常。[0056]一些实施例中,所述基于所述裁决结果为所述访问请求返回对应的数据包括:若所述裁决结果正常时,为所述访问请求返回第一数据,裁决结果正常时,表征所述访问请求
6
CN 112073412 A
说 明 书
5/6页
不是网络爬虫发出,则针对所述访问请求返回第一数据,第一数据可以包括其所请求的正常的数据;若所述裁决结果非正常时,为所述访问请求返回第二数据,所述裁决结果非正常时,表征所述访问请求为网络爬虫发出,此时,则针对所述访问请求返回第二数据,第二数据包括虚假数据、带有特定标识的数据、访问请求的设备源不易识别的伪装数据,或是将正确的数据污染后的错误数据。
[0057]本申请实施例的反爬虫方法通过采用多个爬虫检测机制对访问请求进行检测,根据获得的多个响应结果根据需要选择相应的算法进行裁决计算,以基于裁决结果针对访问请求返回对应的数据,这样避免了单一爬虫检测机制可能造成的误判,提高了爬虫检测的准确性,还可以根据应用场景选用适应的算法进行裁决,提升了安全性,用户体验好。[0058]基于相同的发明构思,本申请还提供了一种爬虫检测装置400,参见图2所示,结合前文,其包括:
[0059]输入单元401,用于接收访问请求。
[0060]本申请实施例提供反爬虫方法用于判断访问请求是否来自于网络爬虫,以根据判断结果,在该访问请求来自网络爬虫时,为该访问请求返回伪数据,并对网络爬虫所请求访问的信息进行相应的反爬策略限制。在本步骤中,输入单元401接收到来自客户端的访问请求后,可以将访问请求复制为多份,以供多个爬虫检测机制对其进行检测。[0061]检测单元402,采用M个爬虫检测机制对所述访问请求进行检测,获取M个响应结果。
[0062]本步骤中,为确定访问请求是否来自网络爬虫,通过检测单元402采用了M个爬虫检测机制对该访问请求进行检测,所涉及的爬虫检测机制可以包括根据网络爬虫的特征所设置的各种识别特征,例如,根据网络爬虫的访问目标特性所设置的相应识别特征,或者是网络爬虫的源服务所设置的相应识别特征,或者是根据网络爬虫访问的访问性能如访问频率等设定的多个不同的阈值,以避免单一阈值被爬虫绕过,等等,这里,本申请对具体的爬虫检测机制不做限制,能基于网络爬虫的特性,用于检测以识别出网络爬虫即可。采用M个爬虫检测机制对所述访问请求进行检测,可以避免单一爬虫检测机制可能被绕过而出现的漏洞,通过检测单元402进行检测之后,相应的根据所采用的M个爬虫检测机制获取M个响应结果,所获取的M个响应结果包括三种情况,即,所述访问请求经过M个爬虫检测机制的检测,可能M个检测机制均认为该访问请求为网络爬虫发出,或者是M个检测机制均认为该访问请求为非网络爬虫发出,或者是M个检测机制中,有一部分检测机制检测后认为该访问请求为网络爬虫发出,另一部分监测机制检测后认为该访问请求为非网络爬虫发出,基于M个检测机制检测结果不一样的情况,需要对M个响应结果进行进一步的判断才能确认该访问请求是否为网络爬虫发出。[0063]裁决单元403,采用预设裁决算法针对M个响应结果进行裁决,获得裁决结果;[0064]在本步骤中,根据应用场景或用户需要,通过裁决单元403采用预设裁决算法对M个响应结果进行裁决,获取裁决结果,以确认该访问请求是否为网络爬虫发出。具体地,针对安全要求比较严格的数据,可以通过裁决单元403采用一致性表决的方式来进行裁决,也就是,在M个响应结果中,有一个响应结果认为该访问请求为网络爬虫发出,则裁定该访问请求是网络爬虫发出,裁决单元403输出裁决结果为非正常。[0065]输出单元404,基于所述裁决结果为所述访问请求返回对应的数据。
7
CN 112073412 A[0066]
说 明 书
6/6页
本步骤中,根据输出单元404输出的裁决结果是否正常,为该访问请求返回对应的
数据。具体的,输出单元404输出的裁决结果为正常时,返回与所述访问请求对应的数据;输出单元404输出的裁决结果为非正常时,为该访问请求返回伪数据,并针对该访问请求的相关特征进行反爬策略限制,以限制其访问,避免其继续访问造成网络负担。[0067]一些实施例中,所述反爬虫装置还包括控制单元405,用于通过预设选择算法从预设的爬虫检测机制集合中选取M个不重复的爬虫检测机制的组合用于检测。在接收到访问请求后,控制单元405通过预设选择算法从预设的爬虫检测机制集合中选取M个不重复的爬虫检测机制的组合用于检测。爬虫检测机制可以包括根据网络爬虫的特征所设置的各种识别特征,可以包括,根据网络爬虫的访问目标特性所设置的相应识别特征,或者是网络爬虫的源服务所设置的相应识别特征,或者是根据网络爬虫访问的访问性能如访问频率等设定的多个不同的阈值,以避免单一阈值被爬虫绕过,等等,这里,本申请对具体的爬虫检测机制不做限制,能基于网络爬虫的特性,用于检测以识别出网络爬虫即可。预设的爬虫检测机制集合中包括尽可能多的爬虫监测机制的个数,至少超过M个的不重复的爬虫检测机制,以在检测过程中控制单元405能随机的选取M个不重复的爬虫检测机制用于检测。[0068]需要说明的是,附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0069]描述于本申请实施例中所涉及到的单元可以通过硬件的方式实现,也可以通过软件的方式来实现。所描述的单元也可以设置在处理器中。由此,本申请还提供一种处理器,包括:存储装置,其上存储有计算机程序;当所述处理器执行所述存储装置上的计算机程序时,实现本申请任一实施例提供的反爬虫方法的步骤。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。例如,输入单元还可以被描述为“用于接收访问请求的单元”。
[0070]作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现本申请任一实施例提供的反爬虫方法的步骤。这里的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。该计算机可读介质可以是上述实施例中描述的控制器中所包含的;也可以是单独存在,而未装配入该控制器中。上述计算机可读介质承载有计算机程序,当计算机程序被处理器执行时,可以实现如上述任一实施例所描述的系统控制方法。[0071]以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。
8
CN 112073412 A
说 明 书 附 图
1/2页
图1
9
CN 112073412 A
说 明 书 附 图
2/2页
图2
10
因篇幅问题不能全部显示,请点此查看更多更全内容