反爬虫方法、装置、电子设备及计算机可读存储介质转让专利

申请号 : CN202110597257.X

文献号 : CN113364753B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 龙腾飞

申请人 : 深圳赛安特技术服务有限公司

摘要 :

本发明涉及数据安全技术,揭露了一种反爬虫方法,包括:获取用户的前端浏览记录,提取前端浏览记录中的浏览地址与浏览时间;根据浏览地址与浏览时间计算用户行为指标;若用户行为指标大于预设阈值,对用户进行访问限制;若用户行为指标小于或等于预设阈值,获取预设时间段内用户访问的目标网页的反爬虫验证参数;根据反爬虫验证参数,构建用户对目标网页的访问代价函数;迭代访问代价函数,得到访问代价值,当所述访问代价值小于所述反爬虫验证参数时,对所述用户进行访问限制。此外,本发明还涉及区块链技术,前端浏览记录可存储于区块链的节点。本发明还提出一种反爬虫装置、设备及存储介质。本发明可以提高反爬虫的精确度。

权利要求 :

1.一种反爬虫方法,其特征在于,所述方法包括:

获取用户的前端浏览记录,提取所述前端浏览记录中的浏览地址与浏览时间,包括获取预构建的地址字符和时间字符,将所述地址字符编译为地址规则表达式,并利用所述地址规则表达式提取所述前端浏览记录中的浏览地址,将所述时间字符编译为时间规则表达式,并利用所述时间规则表达式提取所述前端浏览记录中的浏览时间;

根据所述浏览地址与浏览时间计算用户行为指标,包括根据所述浏览地址确定地址数量,根据所述浏览时间确定总浏览时长,根据所述浏览时间和所述地址数量计算预设单位时长内访问次数,根据所述地址数量与所述总浏览时长计算每个浏览地址的平均浏览时长,根据所述地址数量、总浏览时长、平均浏览时长和预设单位时长访问次数,利用预设的指标函数计算得到用户行为指标,所述反爬虫验证参数,接收从所述用户的IP地址发出的目标网页请求指令,解析所述目标网页请求指令,得到目标网页请求地址,利用所述目标网页请求地址执行索引操作,得到与所述目标网页请求地址对应的服务器,在预设时间段内,计算所述服务器的最大响应规模数据,根据所述最大响应规模数据,计算所述服务器在所述预设时间段内的工作量范围区间均值,得到所述反爬虫验证参数;

若所述用户行为指标大于预设阈值,则对所述用户进行访问限制;

若所述用户行为指标小于或等于所述预设阈值,则获取预设时间段内所述用户访问的目标网页的反爬虫验证参数;根据所述反爬虫验证参数,构建所述用户对所述目标网页的访问代价函数,并迭代所述访问代价函数,得到访问代价值,所述访问代价是指用户通过用户IP地址对数据进行访问时,用户IP地址对应的服务器的负载消耗;

当所述访问代价值小于所述反爬虫验证参数时,对所述用户进行访问限制。

2.如权利要求1所述的反爬虫方法,其特征在于,所述获取用户的前端浏览记录,包括:获取预设的前端页面的代码函数;

将预先构建的数据采集函数编译为数据采集埋点;

将所述数据采集埋点添加至所述代码函数中;

当用户浏览所述前端页面时,利用含有所述代码函数的数据采集接口采集用户的前端浏览记录。

3.如权利要求1所述的反爬虫方法,其特征在于,所述对所述用户进行访问限制,包括:获取所述用户的后端响应记录;

对所述后端响应记录进行IP溯源,得到用户IP地址;

对所述用户IP地址进行黑名单限制与验证码限制。

4.如权利要求3所述的反爬虫方法,其特征在于,所述对所述后端响应记录进行IP溯源,得到用户IP地址,包括:提取所述后端响应记录中的访问请求;

遍历并确定所述访问请求中的请求头数据类;

对所述请求头数据类进行反射操作,得到请求头方法;

根据所述请求头方法构建请求头提取语句;

执行所述请求头提取语句提取所述访问请求中的请求消息头;

对所述消息头进行解析,得到用户IP地址。

5.如权利要求3所述的反爬虫方法,其特征在于,所述黑名单限制包括:将所述用户IP地址加入预设的黑名单;

当检测到访问请求时,将所述访问请求对应的IP地址与所述黑名单中的用户IP地址进行比对;

若所述访问请求对应的IP地址与所述黑名单中的用户IP地址匹配,则拒绝该访问请求;

若所述访问请求对应的IP地址与所述黑名单中的用户IP地址不匹配,则响应所述访问请求。

6.一种反爬虫装置,其特征在于,所述装置包括:

记录提取模块,用于获取用户的前端浏览记录,提取所述前端浏览记录中的浏览地址与浏览时间,包括获取预构建的地址字符和时间字符,将所述地址字符编译为地址规则表达式,并利用所述地址规则表达式提取所述前端浏览记录中的浏览地址,将所述时间字符编译为时间规则表达式,并利用所述时间规则表达式提取所述前端浏览记录中的浏览时间;

指标计算模块,用于根据所述浏览地址与浏览时间计算用户行为指标,包括根据所述浏览地址确定地址数量,根据所述浏览时间确定总浏览时长,根据所述浏览时间和所述地址数量计算预设单位时长内访问次数,根据所述地址数量与所述总浏览时长计算每个浏览地址的平均浏览时长,根据所述地址数量、总浏览时长、平均浏览时长和预设单位时长访问次数,利用预设的指标函数计算得到用户行为指标;

第一限制模块,用于在所述用户行为指标大于预设阈值时,对所述用户进行访问限制;

参数获取模块,用于在所述用户行为指标小于或等于所述预设阈值时,获取预设时间段内所述用户访问的目标网页的反爬虫验证参数;

函数构建模块,用于根据所述反爬虫验证参数,构建所述用户对所述目标网页的访问代价函数,并迭代所述访问代价函数,得到访问代价值;

第二限制模块,用于当所述访问代价值小于所述反爬虫验证参数时,对所述用户进行访问限制。

7.一种电子设备,其特征在于,所述电子设备包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5中任意一项所述的反爬虫方法。

8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任意一项所述的反爬虫方法。

说明书 :

反爬虫方法、装置、电子设备及计算机可读存储介质

技术领域

[0001] 本发明涉及数据安全技术领域,尤其涉及一种反爬虫方法、装置、电子设备及计算机可读存储介质。

背景技术

[0002] 在当今的大数据时代,数据已经成为企业的核心资产之一。随着各类企业对网络数据采集的需求不断增长,恶意的爬虫攻击也在快速增长。所述爬虫攻击是基于爬虫技术非法爬取未授权平台数据,大量的爬虫攻击不仅会影响正常用户的访问,还会给企业带来极大的威胁。
[0003] 传统的反爬虫服务大部分都是基于技术层面进行硬实施,但对于爬虫使用者的定位不精准,效果不佳,甚至会对正常用户的访问有误伤,因此,传统的反爬虫面临越来越明显的挑战。

发明内容

[0004] 本发明提供一种反爬虫方法、装置及计算机可读存储介质,其主要目的在于解决进行反爬虫的精确度较低的问题。
[0005] 为实现上述目的,本发明提供的一种反爬虫方法,包括:
[0006] 获取用户的前端浏览记录,提取所述前端浏览记录中的浏览地址与浏览时间;
[0007] 根据所述浏览地址与浏览时间计算用户行为指标;
[0008] 若所述用户行为指标大于预设阈值,则对所述用户进行访问限制;
[0009] 若所述用户行为指标小于或等于所述预设阈值,则获取预设时间段内所述用户访问的目标网页的反爬虫验证参数;根据所述反爬虫验证参数,构建所述用户对所述目标网页的访问代价函数,并迭代所述访问代价函数,得到访问代价值;
[0010] 当所述访问代价值小于所述反爬虫验证参数时,对所述用户进行访问限制。
[0011] 可选地,所述获取用户的前端浏览记录,包括:
[0012] 获取预设的前端页面的代码函数;
[0013] 将预先构建的数据采集函数编译为数据采集埋点;
[0014] 将所述数据采集埋点添加至所述代码函数中;
[0015] 当用户浏览所述前端页面时,利用含有所述代码函数的数据采集接口采集用户的前端浏览记录。
[0016] 可选地,所述根据所述浏览地址与浏览时间计算用户行为指标,包括:
[0017] 根据所述浏览地址确定地址数量;
[0018] 根据所述浏览时间确定总浏览时长;
[0019] 根据所述浏览时间和所述地址数量计算预设单位时长内访问次数;
[0020] 根据所述地址数量与所述总浏览时长计算每个浏览地址的平均浏览时长;
[0021] 根据所述地址数量、总浏览时长、平均浏览时长和预设单位时长访问次数,利用预设的指标函数计算得到用户行为指标。
[0022] 可选地,所述对所述用户进行访问限制,包括:
[0023] 获取所述用户的后端响应记录;
[0024] 对所述后端响应记录进行IP溯源,得到用户IP地址;
[0025] 对所述用户IP地址进行黑名单限制与验证码限制。
[0026] 可选地,所述对所述后端响应记录进行IP溯源,得到用户IP地址,包括:
[0027] 提取所述后端响应记录中的访问请求;
[0028] 遍历并确定所述访问请求中的请求头数据类;
[0029] 对所述请求头数据类进行反射操作,得到请求头方法;
[0030] 根据所述请求头方法构建请求头提取语句;
[0031] 执行所述请求头提取语句提取所述访问请求中的请求消息头;
[0032] 对所述消息头进行解析,得到用户IP地址。
[0033] 可选地,所述黑名单限制包括:
[0034] 将所述用户IP地址加入预设的黑名单;
[0035] 当检测到访问请求时,将所述访问请求对应的IP地址与所述黑名单中的用户IP地址进行比对;
[0036] 若所述访问请求对应的IP地址与所述黑名单中的用户IP地址匹配,则拒绝该访问请求;
[0037] 若所述访问请求对应的IP地址与所述黑名单中的用户IP地址不匹配,则响应所述访问请求。
[0038] 可选地,所述获取预设时间段内所述用户访问的目标网页的反爬虫验证参数,包括:
[0039] 接收从所述用户的IP地址发出的目标网页请求指令,解析所述目标网页请求指令,得到目标网页请求地址;
[0040] 利用所述目标网页请求地址执行索引操作,得到与所述目标网页请求地址对应的服务器;
[0041] 在所述预设时间段内,计算所述服务器的最大响应规模数据;
[0042] 根据所述最大响应规模数据,计算所述服务器在所述预设时间段内的工作量范围区间均值,得到所述反爬虫验证参数。
[0043] 为了解决上述问题,本发明还提供一种反爬虫装置,所述装置包括:
[0044] 记录提取模块,用于获取用户的前端浏览记录,提取所述前端浏览记录中的浏览地址与浏览时间;
[0045] 指标计算模块,用于根据所述浏览地址与浏览时间计算用户行为指标;
[0046] 第一限制模块,用于若所述用户行为指标大于预设阈值,则对所述用户进行访问限制;
[0047] 参数获取模块,用于若所述用户行为指标小于或等于所述预设阈值,则获取预设时间段内所述用户访问的目标网页的反爬虫验证参数;
[0048] 函数构建模块,用于根据所述反爬虫验证参数,构建所述用户对所述目标网页的访问代价函数,并迭代所述访问代价函数,得到访问代价值;
[0049] 第二限制模块,用于当所述访问代价值小于所述反爬虫验证参数时,对所述用户进行访问限制。
[0050] 为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
[0051] 存储器,存储至少一个指令;及
[0052] 处理器,执行所述存储器中存储的指令以实现上述所述的反爬虫方法。
[0053] 为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的反爬虫方法。
[0054] 本发明实施例可根据用户行为指标实现对用户的初步筛选,以提高反爬虫的效率,并构建代价函数对通过初步筛选的用户进行访问代价计算,通过访问代价对再次对通过初步筛选的用户进行筛选,以提高爬虫筛选的精确度,进而对爬虫用户进行访问限制。因此本发明提出的反爬虫方法、装置、电子设备及计算机可读存储介质,可以解决进行反爬虫的精确度较低的问题,提高反爬虫的精确度。

附图说明

[0055] 图1为本发明一实施例提供的反爬虫方法的流程示意图;
[0056] 图2为本发明一实施例提供的进行访问限制的流程示意图;
[0057] 图3为本发明一实施例提供的生成初始资源标签的流程示意图;
[0058] 图4为本发明一实施例提供的反爬虫装置的功能模块图;
[0059] 图5为本发明一实施例提供的实现所述反爬虫方法的电子设备的结构示意图。
[0060] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0061] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0062] 本申请实施例提供一种反爬虫方法。所述反爬虫方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述反爬虫方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。
[0063] 参照图1所示,为本发明一实施例提供的反爬虫方法的流程示意图。在本实施例中,所述反爬虫方法包括:
[0064] S1、获取用户的前端浏览记录,提取所述前端浏览记录中的浏览地址与浏览时间。
[0065] 本发明实施例中,所述前端浏览记录为用户在前端页面(如web网页、app界面等)中浏览、访问数据时产生的页面记录。
[0066] 例如,用户小明在2233年6月6日6点至2233年6月6日7点浏览了小说网站www.xiaoshuo.com,浏览的内容为小说《钢铁是怎样炼成的》。
[0067] 所述前端浏览记录可预先存储于前端中的数据库、区块链、网络缓存等存储区域。
[0068] 本发明实施例中,可通过在前端页面进行埋点的方式获取用户的前端浏览记录。
[0069] 详细地,所述获取用户的前端浏览记录,包括:
[0070] 获取预设的前端页面的代码函数;
[0071] 将预先构建的数据采集函数编译为数据采集埋点;
[0072] 将所述数据采集埋点添加至所述代码函数中;
[0073] 当用户浏览所述前端页面时,利用含有所述数据采集接口的代码函数采集用户的前端浏览记录。
[0074] 具体地,所述代码函数为支持所述前端页面正常运行的函数,所述数据采集函数为具有数据采集功能的函数(如java中的getUserInfo函数),通过数据采集函数编译为数据采集埋点,并添加至前端页面的代码函数中,可实现对前端浏览记录的实时采集。
[0075] 本实施例通过在前端页面中以埋点方式获取前端浏览记录,有利于提高获取所述前端浏览记录的实时性。
[0076] 本发明另一实施例中,还可通过从前端页面中提取页面日志,并对页面日志进行分析的方式来获取用户的前端浏览记录。
[0077] 详细地,所述获取用户的前端浏览记录,包括:
[0078] 获取预设的前端页面的页面日志;
[0079] 根据预设的用户标识提取所述页面日志中所述用户的前端浏览记录。
[0080] 具体地,所述用户标识用于对用户进行唯一标记,例如,用户名、用户ID等,可通过具有数据抓取功能的java语句从预设的前端页面中获取该前端页面的页面日志,并通过用户标识对页面日志中用户的前端浏览记录进行提取。
[0081] 通过对页面日志进行分析来获取用户的前端浏览记录,可提高获取的前端浏览记录的完整性。
[0082] 本发明其中一个实际应用场景中,由于用户的前端浏览记录中可能包含多条记录,且每条记录中含有大量的数据,若直接对所述前端浏览记录进行处理,会占用大量的计算资源,因此,本发明实施例可通过对所述前端浏览记录进行分析,提取所述前端浏览记录中的浏览地址与浏览时间,以减少后续对前端浏览记录进行分析时消耗的计算资源,提高对前端浏览记录进行分析的效率。
[0083] 本发明其中一个实施例中,所述提取所述前端浏览记录中的浏览地址与浏览时间,包括:
[0084] 获取预构建的地址字符和时间字符;
[0085] 将所述地址字符编译为地址规则表达式,并利用所述地址规则表达式提取所述前端浏览记录中的浏览地址;
[0086] 将所述时间字符编译为时间规则表达式,并利用所述时间规则表达式提取所述前端浏览记录中的浏览时间。
[0087] 详细地,所述地址字符与时间字符可由用户预先给定,所述地址规则表达式可用于从所述前端浏览记录中匹配并提取与地址相关的字段,以实现从该前端浏览记录中提取用户的浏览地址,所述时间规则表达式可用于从所述前端浏览记录中匹配并提取与时间相关的字段,以实现从该前端浏览记录中提取用户的浏览时间。
[0088] 例如,存在前端浏览记录:用户小明在2233年6月6日6点至2233年6月6日7点浏览了小说网站www.xiaoshuo.com,浏览的内容为小说《钢铁是怎样炼成的》。地址规则表达式为:www.xxxx.com,则可利用该地址规则表达式将该前端浏览记录中以www.xxxx.com形式进行表达的字段进行提取,得到“www.xiaoshuo.com”;时间字段为:y年y月y日y点,则可利用该时间规则表达式将该前端记录中以y年y月y日y点形式进行表达的字段进行提取,得到“2233年6月6日6点”和“2233年6月6日7点”。
[0089] 本实施例中,通过将预构建的字符编译为规则表达式,并利用规则表达式提取前端浏览记录中的浏览地址与浏览时间,无需对前端浏览记录进行分析,有利于提高从前端浏览记录中提取浏览地址与浏览时间的效率。
[0090] 本发明另一实施例中,还可采用智能模型对所述前端浏览记录进行分析,提取所述前端浏览记录中的浏览地址与浏览时间,所述智能模型包括但不限于NLP(Natural Language Processing,自然语言处理)模型、HMM((Hidden Markov Model,隐马尔科夫模型)。
[0091] 通过智能模型对前端浏览记录进行分析,以提取前端浏览记录中的浏览地址与浏览时间,可提高从所述前端浏览记录中获取浏览地址与浏览时间的精确度。
[0092] S2、根据所述浏览地址与浏览时间计算用户行为指标。
[0093] 本发明其中一个实施例中,可以采用下述方法根据所述浏览地址与浏览时间计算用户行为指标:
[0094] 根据所述浏览地址确定地址数量;
[0095] 根据所述浏览时间确定总浏览时长;
[0096] 根据所述浏览时间和所述地址数量计算预设单位时长内访问次数;
[0097] 根据所述地址数量与所述总浏览时长计算每个浏览地址的平均浏览时长;
[0098] 利用预设的指标函数对所述地址数量、总浏览时长、平均浏览时长和预设单位时长访问次数进行计算,得到用户行为指标。
[0099] 例如,用户小明的在6点至7点的浏览地址为的www.xiaoshuo.com,在7点至9点浏览地址为www.gouwu.com,则确定用户小明的地址数量为2,浏览总时长为3小时,用户小明对每个浏览地址的平均浏览时长为1.5小时,当预设单位时长为3小时,预设单位时长内访问次数为2。
[0100] 本发明其中一个实施例中,所述利用预设的指标函数对所述地址数量、总浏览时长、平均浏览时长和预设单位时长访问次数进行计算,得到用户行为指标,包括:
[0101] 利用如下指标函数计算用户行为指标:
[0102]
[0103] 其中,f为所述用户行为指标,A为所述地址数量,B为所述总浏览时长,C为所述平均浏览时长,D为所述预设单位时长访问次数,α、β、γ和θ为预设权重系数。
[0104] S3、判断所述用户行为指标是否大于预设阈值,若所述用户行为指标大于预设阈值,执行S4、对所述用户进行访问限制。
[0105] 本发明其中一个实际应用场景中,由于非爬虫用户的作息方式较为固定,因此非爬虫用户的浏览习惯较为固定。例如,小明通常于上午6点至7点对地址为www.xiaoshuo.com的网页进行浏览;小红通常于晚上8点至9点对地址为www.gouwu.com的网页进行浏览。因此,本发明实施例可利用计算得到的用户行为指标表示用户为非爬虫用户的概率,并将用户行为指标与预设阈值进行对比,当所述用户行为指标大于预设阈值,确定该用户为爬虫,需对该用户的IP地址进行溯源,以便于后续对该IP地址的访问进行限制。
[0106] 本发明实施例中,当确定所述用户为爬虫后,需对该用户的用户IP地址添加访问限制,所述访问限制包括但不限于黑名单屏蔽、验证码校验、访问次数限制、添加水印、Csrf(Cross‑site request forgery,跨站请求伪造)防护及DDOS(Distributed Denial of Service,分布式拒绝服务)防护中的一种或多种方式。
[0107] 本发明实施例中,参图2所示,所述对所述用户进行访问限制,包括:
[0108] S21、获取所述用户的后端响应记录;
[0109] S22、对所述后端响应记录进行IP溯源,得到用户IP地址;
[0110] S23、对所述用户IP地址进行黑名单限制与验证码限制。
[0111] 本发明实施例中,可通过获取与所述用户的前端浏览记录对应的后端响应记录,并对所述后端响应记录进行分析,以实现对用户的IP溯源,得到用户IP地址。
[0112] 详细地,所述获取所述用户的后端响应记录的步骤,与S1中获取用户的前端浏览记录的步骤一致,在此不做赘述。
[0113] 本发明其中一个实施例中,所述对所述后端响应记录进行IP溯源,得到用户IP地址,包括:
[0114] 提取所述后端响应记录中的访问请求;
[0115] 遍历并确定所述访问请求中的请求头数据类;
[0116] 对所述请求头数据类进行反射操作,得到请求头方法;
[0117] 根据所述请求头方法构建请求头提取语句;
[0118] 执行所述请求头提取语句提取所述访问请求中的请求消息头;
[0119] 对所述消息头进行解析,得到用户IP地址。
[0120] 详细地,并发明实施例可采用预设的java语句提取后端响应记录中的访问请求,并遍历该访问请求,以确定访问请求中的请求头数据类,所述请求头数据类可用于实现所述访问请求,通过对所述请求头数据类进行反射操作,即可得到请求头方法。
[0121] 详细地,所述对所述请求头数据类进行反射操作,得到请求头方法,例如,利用如下java语句对所述请求头数据类进行反射操作:
[0122] String name="Hualing";Class c1=name.getClass();System.out.println(c1.ge tName())。
[0123] 其中,"Hualing"为所述请求头数据类。
[0124] 当对所述请求头数据类进行反射操作后,即可得到请求头方法。示例性地,可根据所述请求头方法构建如下请求头提取语句:
[0125] String name=field.getName()。
[0126] 进一步地,本发明实施例中可利用解析器解析所述请求得到所述请求消息头中的用户IP地址,所述解析器包括CarakanC/C++,SquirrelFishC++和SquirrelFishExtremeC++等。
[0127] 本发明实施例中,所述黑名单限制包括:
[0128] 将所述用户IP地址加入预设的黑名单;
[0129] 当检测到目标用户的访问请求时,将所述用户访问请求对应的IP地址与所述黑名单中的用户IP地址进行比对;
[0130] 若所述用户访问请求对应的IP地址与所述黑名单中的用户IP地址相同,则拒绝该目标用户的访问请求;
[0131] 若所述用户访问请求对应的IP地址与所述黑名单中的用户IP地址不相同,则允许该目标用户的访问请求。
[0132] 例如,黑名单中存在IP地址A、IP地址B、IP地址C和IP地址D,当检测到目标用户的访问请求时,利用预设的解析器对该访问请求进行解析,得到该访问请求对应的IP地址Z,将IP地址Z分别与黑名单中的IP地址A、IP地址B、IP地址C和IP地址D进行比对,若黑名单中存在任一个IP地址与IP地址Z相同,则拒绝该IP地址Z对应的访问请求;若黑名单中不存在IP地址与IP地址Z相同,则允许该IP地址Z对应的访问请求。
[0133] 进一步地,所述验证码限制包括:
[0134] 当检测到所述用户IP地址对应的访问请求时,向所述用户IP地址发送验证码验证,并接受所述用户IP地址返回的验证消息;
[0135] 若所述验证消息与预设的标准消息一致时,允许所述用户IP地址对应的访问请求;
[0136] 若所述验证消息与预设的标准消息不一致时,拒绝所述用户IP地址对应的访问请求。
[0137] 例如,当检测到所述用户IP地址对应的访问请求时,向所述用户IP地址发送数字验证码,并接受该用户IP地址返回的验证数字(验证消息),若所述验证数字与数字验证码相同,则允许所述用户IP地址对应的访问请求;若所述验证数字与数字验证码不相同,则拒绝所述用户IP地址对应的访问请求。
[0138] 若所述用户行为指标小于或等于所述预设阈值,执行S5、获取预设时间段内所述用户访问的目标网页的反爬虫验证参数。
[0139] 本发明实施例中,当用户行为指标小于或等于所述预设阈值,并不表示用户行为一定不是爬虫行为,需继续执行对用户行为的异常检测,以确定用户所在IP地址是否为爬虫地址。
[0140] 进一步地,参图3所示,所述获取预设时间段内所述用户访问的目标网页的反爬虫验证参数,包括:
[0141] S31、接收从所述用户IP地址发出的目标网页请求指令,解析所述目标网页请求指令,得到目标网页请求地址;
[0142] S32、利用所述目标网页请求地址,索引出与所述目标网页对应的服务器;
[0143] S33、在所述预设时间段内,计算所述服务器的最大响应规模数据;
[0144] S34、根据所述最大响应规模数据,计算所述服务器在所述预设时间段内的工作量范围区间;
[0145] S35、计算所述工作量范围区间的均值,得到所述反爬虫验证参数。
[0146] 详细地,本发明实施例中,所述访问时间段可设置为30s、60s等;所述最大响应规模数据包括服务器在所述预设时间段内的最大响应频率、最大系统负载等参数。
[0147] 如用户IP地址欲访问目标网页A,根据目标网页A的请求地址,索引出支持目标网页A运行的服务器,并立刻计算出在访问时间段内,支持目标网页A运行的服务器所允许的最大响应频率、最大系统负载等参数。
[0148] 因此,当获得包括最大响应频率、最大系统负载等参数的最大响应规模数据后,计算服务器在所述预设时间段内,可支持传输响应的工作量范围区间,如目标网页A对应的服务器,在访问时间段设置为30s,可支持传输响应的工作量范围区间包括:响应请求次数区间为[1000,15000]次、响应数据传输区间为[100G,1000G]、响应频率区间为[1.5GHz,6.25GHz]等。
[0149] 进一步地,当得到所述工作量范围区间后,本发明实施例中,计算响应请求次数平均值、响应数据传输平均值、响应频率平均值等,汇总得到所述反爬虫验证参数。
[0150] S6、根据所述反爬虫验证参数,构建所述用户对所述目标网页的访问代价函数,并迭代所述访问代价函数,得到访问代价值。
[0151] 本发明实施例中,当计算出目标网页对应的服务器,在所述访问时间段的反爬虫验证参数后,可通过求解所述用户IP地址访问目标网页对应的服务器,需要付出的访问代价,若用户IP地址可以付出对应的访问代价,则判定用户IP地址为正常用户IP地址,若用户IP地址无法付出对应的访问代价,则判定用户IP地址为爬虫IP地址,因此需先构建出访问代价函数。
[0152] 具体地,所述访问代价是指用户通过用户IP地址对数据进行访问时,用户IP地址对应的服务器的负载消耗,例如,用户通过用户IP地址对目标网页进行访问时,该用户IP地址对应的服务器需要承担每秒8000次的数据请求产生的负载消耗,则每秒8000次的数据请求产生的负载消耗即为用户对所述目标网页进行访问的访问代价。
[0153] 详细地,所述根据所述反爬虫验证参数,构建所述用户对所述目标网页的访问代价函数,包括:
[0154] 根据所述目标网页请求指令,确定所述用户IP地址的访问数据位;
[0155] 延长所述访问数据位,得到延长数据位;
[0156] 利用预先构建的加密算法加密所述延长数据位,得到加密数据位;
[0157] 根据所述加密数据位、所述访问数据位、所述延长数据位及所述反爬虫验证参数,构建得到所述访问代价函数。
[0158] 示例性地,所述访问代价函数为:
[0159]
[0160] 其中,F为访问代价函数,H()表示预设的加密算法,value表示所述访问数据位,x表示所述加密数据位,y为所述延长数据位,cost(value|x)表示所述访问数据位加密得到所述加密数据位的代价值, 为所述加密算法对加密所述延长数据位后得到的加密数据为的数值化表示,α为预设系数。
[0161] 如根据目标网页A对应的目标网页请求指令,解析出用户IP地址每次访问目标网页A的请求指令均为n位,通过延长m位,得到对应的延长数据位为n+m。
[0162] 详细地,本发明实施例中,所述加密算法可使用哈希加密算法、MD5加密算法等。
[0163] 本发明实施例中,可根据访问数据位加密得到延长数据位,以及需要付出的加密代价,构建得到所述访问代价函数,并对所述访问代价函数进行迭代,得到访问代价值。
[0164] 详细地,所述对所述访问代价函数进行迭代,是指利用所述访问代价函数计算多个预设单位时长内,用户通过用户IP地址对数据进行访问的单位访问代价,并将该多个预设单位时长内单位访问代价的均值作为所述访问代价值。
[0165] S7、判断所述访问代价值是否小于所述反爬虫验证参数,当所述访问代价值小于所述反爬虫验证参数时,执行S8、对所述用户进行访问限制。
[0166] 本发明实施例中,当访问代价值小于所述反爬虫验证参数时,判定所述用户为爬虫,对所述用户进行访问限制。
[0167] 详细地,当访问代价值小于所述反爬虫验证参数时,进而限制用户IP地址访问,是因为爬虫地址所在服务器需在短时间内爬取大量数据,因此爬虫地址服务器资源有限,故一般情况下在短时间内,不会付出过多服务器资源执行代价计算,如上述,若在预设时间内,通过访问数据位加密得到加密数据位,但每组加密数据位的位数均不满足延长数据位的位数,或在预设时间内,加密未超过8000次,则表示用户IP地址资源受限,无法付出请求代价,因此判定用户IP地址为爬虫地址,故需要采取资源的访问限制,从而得到反爬虫的目的。
[0168] 本发明实施例中,所述对小于所述反爬虫验证参数的访问代价值对应的用户进行访问限制的步骤,与步骤S3中对所述用户进行访问限制一致,在此不做赘述。
[0169] 当访问代价值大于或等于所述反爬虫验证参数时,执行S9、允许所述用户对所述目标网页进行访问。
[0170] 本发明实施例中,当所述访问代价值大于或等于所述反爬虫验证参数时,判定所述用户为正常用户IP地址,则允许所述用户对所述目标网页进行访问。
[0171] 例如,反爬虫验证参数中响应请求次数平均值为8000次(反爬虫验证参数),若通过访问数据位加密得到加密数据位,且加密数据位的位数满足延长数据位的位数,并且访问数据位加密得到加密数据位共加密超过8000次(访问代价),则表示用户的IP地址愿付出请求代价,因此判定为正常用户IP地址,允许所述用户对所述目标网页进行访问。
[0172] 本发明实施例可根据用户行为指标实现对大量用户的初步筛选,以提高反爬虫的效率,并构建代价函数对通过初步筛选的用户进行访问代价计算,通过访问代价对再次对通过初步筛选的用户进行筛选,以提高爬虫筛选的精确度,进而对爬虫用户进行访问限制。因此本发明提出的反爬虫方法,可以解决进行反爬虫的精确度较低的问题,提高反爬虫的精确度。
[0173] 如图4所示,是本发明一实施例提供的反爬虫装置的功能模块图。
[0174] 本发明所述反爬虫装置100可以安装于电子设备中。根据实现的功能,所述反爬虫装置100可以包括记录提取模块101、指标计算模块102、第一限制模块103、参数获取模块104、函数构建模块105及第二限制模块106。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
[0175] 在本实施例中,关于各模块/单元的功能如下:
[0176] 所述记录提取模块101,用于获取用户的前端浏览记录,提取所述前端浏览记录中的浏览地址与浏览时间;
[0177] 所述指标计算模块102,用于根据所述浏览地址与浏览时间计算用户行为指标;
[0178] 所述第一限制模块103,用于当所述用户行为指标大于预设阈值时,对所述用户进行访问限制;
[0179] 所述参数获取模块104,用于当所述用户行为指标小于或等于所述预设阈值时,获取预设时间段内所述用户访问的目标网页的反爬虫验证参数;
[0180] 所述函数构建模块105,用于根据所述反爬虫验证参数,构建所述用户对所述目标网页的访问代价函数,并迭代所述访问代价函数,得到访问代价值;
[0181] 所述第二限制模块106,用于当所述访问代价值小于所述反爬虫验证参数时,对所述用户进行访问限制。
[0182] 详细地,本发明实施例中所述反爬虫装置100中所述的各模块在使用时采用与上述图1至图3中所述的反爬虫方法一样的技术手段,并能够产生相同的技术效果,这里不再赘述。
[0183] 如图5所示,是本发明一实施例提供的实现反爬虫方法的电子设备的结构示意图。
[0184] 所述述电子设备1可以包括处理器10、存储器11、通信总线12以及通信接口13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如反爬虫程序。
[0185] 其中,所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行反爬虫程序等),以及调用存储在所述存储器11内的数据,以执行电子设备的各种功能和处理数据。
[0186] 所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如反爬虫程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0187] 所述通信总线12可以是外设部件互连标准(peripheral  component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
[0188] 所述通信接口13用于上述电子设备与其他设备之间的通信,包括网络接口和用户接口。可选地,所述网络接口可以包括有线接口和/或无线接口(如WI‑FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。所述用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light‑Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
[0189] 图5仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图5示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0190] 例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、Wi‑Fi模块等,在此不再赘述。
[0191] 应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
[0192] 所述电子设备1中的所述存储器11存储的反爬虫程序是多个指令的组合,在所述处理器10中运行时,可以实现:
[0193] 获取用户的前端浏览记录,提取所述前端浏览记录中的浏览地址与浏览时间;
[0194] 根据所述浏览地址与浏览时间计算用户行为指标;
[0195] 若所述用户行为指标大于预设阈值,则对所述用户进行访问限制;
[0196] 若所述用户行为指标小于或等于所述预设阈值,则获取预设时间段内所述用户访问的目标网页的反爬虫验证参数;根据所述反爬虫验证参数,构建所述用户对所述目标网页的访问代价函数,并迭代所述访问代价函数,得到访问代价值;
[0197] 当所述访问代价值小于所述反爬虫验证参数时,对所述用户进行访问限制。
[0198] 具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
[0199] 进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑Only Memory)。
[0200] 本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
[0201] 获取用户的前端浏览记录,提取所述前端浏览记录中的浏览地址与浏览时间;
[0202] 根据所述浏览地址与浏览时间计算用户行为指标;
[0203] 若所述用户行为指标大于预设阈值,则对所述用户进行访问限制;
[0204] 若所述用户行为指标小于或等于所述预设阈值,则获取预设时间段内所述用户访问的目标网页的反爬虫验证参数;根据所述反爬虫验证参数,构建所述用户对所述目标网页的访问代价函数,并迭代所述访问代价函数,得到访问代价值;
[0205] 当所述访问代价值小于所述反爬虫验证参数时,对所述用户进行访问限制。
[0206] 在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0207] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0208] 另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0209] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
[0210] 因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
[0211] 本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0212] 此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
[0213] 最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。