增强反爬系统识别性能的方法、装置和存储介质与流程

文档序号:17321808发布日期:2019-04-05 21:34阅读:315来源:国知局
增强反爬系统识别性能的方法、装置和存储介质与流程

本公开涉及互联网技术领域,具体地,涉及一种增强反爬系统识别性能的方法、装置和存储介质。



背景技术:

爬虫是一种按照一定的规则,自动地抓取互联网上信息的程序或者脚本。爬虫可以帮助工作人员快速的获取网络上的大量数据,但一些恶意爬虫可能会侵犯用户隐私,或者增大服务器的负荷影响其提供正常的服务,因此有必要建立反爬系统来阻止恶意爬虫的使用。

相关技术中,基于用户行为提取特征,并分析恶意爬虫样本与正常样本的区别,依靠专家知识设计规则建立反爬系统屏蔽爬虫。但是,基于专家知识建立的反爬系统对爬虫的识别性能一定,而爬虫的技术在不断的发展,对于新出现的爬虫,该反爬系统可能难以进行有效识别。



技术实现要素:

本公开的目的是提供一种增强反爬系统识别性能的方法、装置和存储介质,用于解决相关技术中反爬系统难以对新出现的爬虫进行有效识别的技术问题。

为了实现上述目的,本公开实施例的第一方面,提供一种增强反爬系统识别性能的方法,所述方法包括:

通过基于监督学习建立的反爬系统对当前访问数据进行识别,以得到第一爬虫数据和用户数据;

基于聚类算法对所述用户数据进行聚类分析得到簇类数据;

将第二爬虫数据更新到所述反爬系统的训练数据,以使所述反爬系统根据更新后的所述训练数据进行训练,其中,所述第二爬虫数据由人工标注所述簇类数据得到。

可选地,所述基于聚类算法对所述用户数据进行聚类分析得到簇类数据,包括:

于所述用户数据中提取特征向量,其中,所述特征向量包括访问地址、访问时间、访问频率和访问设备信息中的至少一者;

基于不同所述特征向量之间的距离,在所述用户数据之间建立边;

将所述用户数据中所有的极大团作为簇类数据。

可选地,所述将所述用户数据中所有的极大团作为簇类数据之后,所述方法还包括:

去除所述极大团中的边缘样本。

可选地,所述去除所述极大团中的边缘样本,包括:

计算同一极大团中用户数据之间的平均距离;

统计同一极大团中任一用户数据与其它用户数据之间的距离大于所述平均距离的数量;

若所述数量大于第一预设数量阈值,则认定所述用户数据为边缘样本,并去除所述边缘样本。

可选地,所述方法还包括:

确认所述簇类数据的概率密度大于预设概率密度阈值和/或所述簇类数据中的用户数据的数量大于第二预设数量阈值。

可选地,所述方法还包括:

对所述簇类数据中的用户数据进行数据增强,以增加所述簇类数据中用户数据的数量。

可选地,所述反爬系统基于rnn模型建立。

本公开实施例的第二方面,提供一种增强反爬系统识别性能的装置,所述装置包括:

识别模块,被配置为通过基于监督学习建立的反爬系统对当前访问数据进行识别,以得到第一爬虫数据和用户数据;

聚类分析模块,被配置为基于聚类算法对所述用户数据进行聚类分析得到簇类数据;

更新训练模块,被配置为将第二爬虫数据更新到所述反爬系统的训练数据,以使所述反爬系统根据更新后的所述训练数据进行训练,其中,所述第二爬虫数据由人工标注所述簇类数据得到。

可选地,所述聚类分析模块包括:

提取子模块,被配置为于所述用户数据中提取特征向量,其中,所述特征向量包括访问地址、访问时间、访问频率和访问设备信息中的至少一者;

建边子模块,被配置为基于不同所述特征向量之间的距离,在所述用户数据之间建立边;

输出子模块,被配置为将所述用户数据中所有的极大团作为簇类数据。

可选地,所述装置还包括:

去除模块,被配置为在所述输出子模块将所述用户数据中所有的极大团作为簇类数据之后,去除所述极大团中的边缘样本。

可选地,所述去除模块包括:

计算子模块,被配置为计算同一极大团中用户数据之间的平均距离;

统计子模块,被配置为统计同一极大团中任一用户数据与其它用户数据之间的距离大于所述平均距离的数量;

认定子模块,被配置为若所述数量大于第一预设数量阈值,则认定所述用户数据为边缘样本,并去除所述边缘样本。

可选地,所述装置还包括:

确认模块,被配置为确认所述簇类数据的概率密度大于预设概率密度阈值和/或所述簇类数据中的用户数据的数量大于第二预设数量阈值。

可选地,所述装置还包括:

数据增强模块,被配置为对所述簇类数据中的用户数据进行数据增强,以增加所述簇类数据中用户数据的数量。

可选地,所述反爬系统基于rnn模型建立。

本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。

本公开实施例的第四方面,提供一种增强反爬系统识别性能的装置,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面中任一项所述方法的步骤。

基于上述技术方案,通过反爬系统对当前访问数据进行识别,以得到第一爬虫数据和用户数据;由于用户数据中可能存在没有被识别出的爬虫数据,且具有相同特征的爬虫数据可能多次重复出现,故基于聚类算法对所述用户数据进行聚类分析得到簇类数据;用户数据中未被识别出的具有相同特征的爬虫容易被归为同一簇类,便于在所述簇类数据中标记出第二爬虫数据;将所述第二爬虫数据更新到所述反爬系统的训练数据,以使所述反爬系统根据更新后的所述训练数据进行训练。如此,反爬系统可以基于最新的爬虫数据进行训练学习,进而增强自身识别爬虫的性能,有助于反爬系统识别最新的爬虫。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据一示例性实施例示出的一种增强反爬系统识别性能的方法的流程图。

图2是根据一示例性实施例示出的一种增强反爬系统识别性能的方法包括的步骤中基于聚类算法对所述用户数据进行聚类分析得到簇类数据的流程图。

图3是根据一示例性实施例示出的一种增强反爬系统识别性能的方法的另一流程图。

图4是根据一示例性实施例示出的一种增强反爬系统识别性能的方法包括的步骤中去除所述极大团中的边缘样本的流程图。

图5是根据一示例性实施例示出的一种增强反爬系统识别性能的方法的另一流程图。

图6是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的框图。

图7是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的聚类分析模块的框图。

图8是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的另一框图。

图9是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的去除模块的框图。

图10是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的另一框图。

图11是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的另一框图。

图12是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的另一框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

图1是根据一示例性实施例示出的一种增强反爬系统识别性能的方法的流程图,如图1所示,该方法包括:

s11,通过基于监督学习建立的反爬系统对当前访问数据进行识别,以得到第一爬虫数据和用户数据。

s12,基于聚类算法对所述用户数据进行聚类分析得到簇类数据。

s13,将第二爬虫数据更新到所述反爬系统的训练数据,以使所述反爬系统根据更新后的所述训练数据进行训练,其中,所述第二爬虫数据由人工标注所述簇类数据得到。

在步骤s11中,反爬系统基于监督学习算法和反爬系统的训练数据建立,即通过训练数据训练监督学习算法,进而使得基于该监督学习算法建立的反爬系统具有符合预期的识别爬虫的能力,并可以通过该反爬系统对当前访问数据进行识别,以得到第一爬虫数据和用户数据。训练数据可以包括历史访问数据。对于反爬系统使用何种监督学习算法,本公开不作进一步限制,只要能实现上述识别爬虫的功能即可。当前访问数据即反爬系统获取的访问数据,在对当前访问数据进行上述识别之前,当前访问数据没有被用于训练该反爬系统。其中,训练数据可以包括访问地址、访问时间、声纹数据和验证码数据中的至少一者,对此,本公开不做具体限制。

可选地,所述反爬系统基于rnn模型建立。

其中,rnn(recurrentneuralnetwork)模型是一类用于处理序列数据的神经网络,rnn模型会考虑不同的访问特征例如访问地址、访问时间之间的关系,其识别爬虫的效果更好。

对当前访问数据进行识别得到第一爬虫数据和用户数据之后,执行步骤s12,基于聚类算法对所述用户数据进行聚类分析得到簇类数据。其中,聚类算法可以采用现有的算法,例如k-means算法,dbscan(density-basedspatialclusteringofapplicationswithnoise)算法等,也可以自行设计聚类算法对用户数据进行聚类分析。簇类数据包括不同的簇类(cluster),每一个簇类包括一个或多个用户数据,同一簇类中的数据相比其他簇类中的数据的相似度更高,故重复出现的爬虫数据因彼此之间较高的相似度而容易被划分进同一个簇类,如此可以将步骤s11中得到的用户数据中未被识别出的爬虫数据划分进同一簇类,便于后续进行标注。

在步骤s13中,将第二爬虫数据更新到所述反爬系统的训练数据,以使所述反爬系统根据更新后的所述训练数据进行训练,其中,所述第二爬虫数据由人工标注所述簇类数据得到。具体来讲,以训练数据为历史访问数据为例,可以将第二爬虫数据中与历史访问数据中不同的数据新增到历史访问数据中,使得反爬系统可以根据历史访问数据中的第二爬虫数据进行训练,进而使得反爬系统具有识别第二爬虫数据中各种类型的爬虫的能力,训练后的反爬系统在实际工作时,便可以识别出与第二爬虫数据中类型相同的爬虫。

对于人工标注所述簇类数据得到第二爬虫数据,具体来讲,对每一个簇类整体分别标注一个标签,标签可以包括表征簇类为爬虫的爬虫标签和表征簇类为用户的用户标签,进而得到第二爬虫数据,即所有标注有爬虫标签的簇类。可以输出每个簇类的最大值、最小值、均值、中位数和方差中的至少一者作为标注员进行标注的参考。

通过反爬系统对当前访问数据进行识别,以得到第一爬虫数据和用户数据;由于用户数据中可能存在没有被识别出的爬虫数据,且具有相同特征的爬虫数据可能多次重复出现,故基于聚类算法对所述用户数据进行聚类分析得到簇类数据;用户数据中未被识别出的具有相同特征的爬虫容易被归为同一簇类,便于在所述簇类数据中标记出第二爬虫数据;将所述第二爬虫数据更新到所述反爬系统的训练数据,以使所述反爬系统根据更新后的所述训练数据进行训练。如此,反爬系统可以基于最新的爬虫数据进行训练学习,进而增强自身识别爬虫的性能,有助于反爬系统识别最新的爬虫。

可选地,如图2所示,本公开中,基于聚类算法对所述用户数据进行聚类分析得到簇类数据,包括:

s121,于所述用户数据中提取特征向量,其中,所述特征向量包括访问地址、访问时间、访问频率和访问设备信息中的至少一者。

s122,基于不同所述特征向量之间的距离,在所述用户数据之间建立边。

s123,将所述用户数据中所有的极大团作为簇类数据。

在步骤s121中,于所述用户数据中提取特征向量,其中,所述特征向量可以包括访问地址、访问时间、访问频率和访问设备信息中的至少一者。例如,可以将访问地址和访问时间作为特征向量的元素提取特征向量。特征向量用于表征用户数据的访问特征。在其他的实施方式中,特征向量可以为其他形式,以声纹数据为例,对于通过步骤s11中识别得到的标记为用户数据的声纹数据,在预训练好的i-vector模型上计算每段语音的i-vector向量作为特征向量。

在步骤s122中,基于不同所述特征向量之间的距离,在所述用户数据之间建立边。其中,不同的特征向量指从不同用户数据中提取出的特征向量,其种类相同,不同特征向量中包含的具体元素值可能不同。距离用于表征特征向量之间的相似度,例如余弦距离。对于所有的特征向量,计算出其中任意两个特征向量之间的距离作为参考,将特征向量视作结点在符合预设条件的特征向量对应的用户数据之间建立边。举例来讲,若两个特征向量之间的距离小于距离阈值,则在该两个特征向量对应的用户数据之间建立边,以表征具有边的两个用户数据之间具有联系。可以通过建立距离矩阵来存放不同特征向量之间的距离,距离矩阵的每一行分别对应所有特征向量中的一个特征向量,距离矩阵的每一列分别对应所有特征向量中的一个特征向量,进而距离矩阵中的每个元素为该元素所在行和所在列所对应的特征向量的距离。也可以建立邻接矩阵来存放不同用户数据之间是否具有边的信息,邻接矩阵的每一行分别对应所有用户数据中的一个用户数据,邻接矩阵的每一列分别对应所有用户数据中的一个用户数据,进而邻接矩阵中的每个元素表征该元素所在行和所在列所对应的用户数据之间是否具有边,元素可以为0或1分别代表无边和有边。沿用上述例子,对于距离矩阵中的每个元素,若其小于距离阈值,则设置对应邻接矩阵中的对应元素为1,若其大于或等于距离阈值,则设置对应邻接矩阵中的对应元素为0。

在步骤s123中,将所述用户数据中所有的极大团作为簇类数据。极大团(maximalclique)如下定义:对于给定图g=(v,e)。其中,v是图g的顶点集,e是图g的边集。图g的团就是一个两两之间有边的顶点集合。如果一个团不被其他任一团所包含,即它不是其他任一团的真子集,则称该团为图g的极大团,即极大团是增加任一顶点都不再符合团定义的团,也就是说,极大团不能被任何一个更大的团所包含。由于在步骤s122中已经在用户数据之间建立了边,故可以在步骤s123中基于建立的边寻找用户数据中所有的极大团,并将每个极大团作为一个簇类。如此可以将彼此相似的用户数据划入同一个簇类。

图3是根据一示例性实施例示出的一种增强反爬系统识别性能的方法的另一流程图,如图3所示,该方法包括:

s21,通过基于监督学习建立的反爬系统对当前访问数据进行识别,以得到第一爬虫数据和用户数据。

s22,于所述用户数据中提取特征向量,其中,所述特征向量包括访问地址、访问时间、访问频率和访问设备信息中的至少一者。

s23,基于不同所述特征向量之间的距离,在所述用户数据之间建立边。

s24,将所述用户数据中所有的极大团作为簇类数据。

s25,去除所述极大团中的边缘样本。

s26,将第二爬虫数据更新到所述反爬系统的训练数据,以使所述反爬系统根据更新后的所述训练数据进行训练,其中,所述第二爬虫数据由人工标注所述簇类数据得到。

在将所述用户数据中所有的极大团作为簇类数据之后,执行步骤s25,去除极大团中的边缘样本。在同一极大团中,边缘样本为与其他用户数据相似度较低的用户数据,如可以将同一极大团中与其他用户数据的最大相似度低于相似度阈值的用户数据作为边缘样本。将边缘样本从极大团中去除,能够提高同一极大团中用户数据的相似度,使得后续的计算更加准确。去除极大团中的边缘样本可以采用现有技术中的算法,也可以自行设计相关算法。

可选地,如图4所示,本公开中,去除所述极大团中的边缘样本,包括:

s251,计算同一极大团中用户数据之间的平均距离。

s252,统计同一极大团中任一用户数据与其它用户数据之间的距离大于所述平均距离的数量。

s253,若所述数量大于第一预设数量阈值,则认定所述用户数据为边缘样本,并去除所述边缘样本。

将所述用户数据中所有的极大团作为簇类数据之后,执行步骤s251,计算同一极大团中用户数据之间的平均距离,可以将同一极大团中所有的用户数据之间的距离除以距离的数量作为该极大团的平均距离。得到平均距离之后,执行步骤s252,统计同一极大团中任一用户数据与其它用户数据之间的距离大于所述平均距离的数量,即以该极大团的平均距离为参考,对于该极大中的任意一个用户数据,统计该用户数据与该极大团中其他用户数据之间的距离大于该极大团的平均距离的数量。在步骤s253中,若该数量大于第一预设数量阈值,则认定所述用户数据为边缘样本,并去除被认定为边缘样本的该用户数据。如此将同一极大团中任一用户数据与其它用户数据之间的距离大于所述平均距离的数量作为度量该用户数据与同一极大团中其他用户数据相似度的参考,数量越大,则表示该用户数据与其他用户数据相似度越低,低于一定程度时认定其为边缘样本将其去除,实现过程简单。

图5是根据一示例性实施例示出的一种增强反爬系统识别性能的方法的另一流程图,如图5所示,该方法包括:

s31,通过基于监督学习建立的反爬系统对当前访问数据进行识别,以得到第一爬虫数据和用户数据。

s32,基于聚类算法对所述用户数据进行聚类分析得到簇类数据。

s33,确认所述簇类数据的概率密度大于预设概率密度阈值和/或所述簇类数据中的用户数据的数量大于第二预设数量阈值。

s34,对所述簇类数据中的用户数据进行数据增强,以增加所述簇类数据中用户数据的数量。

s35,将第二爬虫数据更新到所述反爬系统的训练数据,以使所述反爬系统根据更新后的所述训练数据进行训练,其中,所述第二爬虫数据由人工标注所述簇类数据得到。

在步骤s33中,可以将簇类数据中每个簇类的概率密度与预设概率密度阈值作比较,概率密度反映了簇类中用户数据的集中程度,表征该簇类中的用户数据的相似程度,若该簇类的概率密度大于预设概率密度阈值,则将该簇类用于后续步骤,否则在后续步骤中不使用该簇类。也可以将簇类数据中每个簇类中的用户数据的数量与第二预设数量阈值做比较,若该簇类中的用户数据的数量大于第二预设数量阈值,则将该簇类用于后续步骤,否则在后续步骤中不使用该簇类。簇类中的用户数据的数量越多,其用户数据的多样性越丰富,使用价值越高。当然,也可以将概率密度大于预设概率密度阈值且用户数据的数量大于第二预设数量阈值的簇类用于后续步骤。

在步骤s34中,对所述簇类数据中的用户数据进行数据增强,以增加所述簇类数据中用户数据的数量。采用数据增强可以得到多个新的用户数据,且新的用户数据与簇类数据中的其他用户数据具有较高相似度,如此可以增加后续得到的第二爬虫数据的数量,提高第二爬虫数据的多样性,使得反爬系统对第二爬虫数据中爬虫的识别更加准确。数据增强可以采用现有技术中的算法,如smote(syntheticminorityoversamplingtechnique)算法。

值得说明的是,对于上述所有方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本公开所必须的。

图6是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的框图,如图6所示,该装置100包括:

识别模块110,被配置为通过基于监督学习建立的反爬系统对当前访问数据进行识别,以得到第一爬虫数据和用户数据;

聚类分析模块120,被配置为基于聚类算法对所述用户数据进行聚类分析得到簇类数据;

更新训练模块130,被配置为将第二爬虫数据更新到所述反爬系统的训练数据,以使所述反爬系统根据更新后的所述训练数据进行训练,其中,所述第二爬虫数据由人工标注所述簇类数据得到。

可选地,如图7所示,该聚类分析模块120包括:

提取子模块121,被配置为于所述用户数据中提取特征向量,其中,所述特征向量包括访问地址、访问时间、访问频率和访问设备信息中的至少一者;

建边子模块122,被配置为基于不同所述特征向量之间的距离,在所述用户数据之间建立边;

输出子模块123,被配置为将所述用户数据中所有的极大团作为簇类数据。

图8是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的另一框图,如图8所示,该装置100除包括识别模块110、聚类分析模块120和更新训练模块130外,还包括:

去除模块140,被配置为在所述输出子模块123将所述用户数据中所有的极大团作为簇类数据之后,去除所述极大团中的边缘样本。

可选地,如图9所示,该去除模块140包括:

计算子模块141,被配置为计算同一极大团中用户数据之间的平均距离;

统计子模块142,被配置为统计同一极大团中任一用户数据与其它用户数据之间的距离大于所述平均距离的数量;

认定子模块143,被配置为若所述数量大于第一预设数量阈值,则认定所述用户数据为边缘样本,并去除所述边缘样本。

图10是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的另一框图,如图10所示,该装置100除包括识别模块110、聚类分析模块120、更新训练模块130和去除模块140外,还包括:

确认模块150,被配置为确认所述簇类数据的概率密度大于预设概率密度阈值和/或所述簇类数据中的用户数据的数量大于第二预设数量阈值。

图11是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的另一框图,如图11所示,该装置100除包括识别模块110、聚类分析模块120、更新训练模块130、去除模块140和确认模块150外,还包括:

数据增强模块160,被配置为对所述簇类数据中的用户数据进行数据增强,以增加所述簇类数据中用户数据的数量。

可选地,所述反爬系统基于rnn模型建立。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图12是根据一示例性实施例示出的一种增强反爬系统识别性能的装置的另一框图。例如,装置1900可以被提供为一服务器。参照图12,装置1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的增强反爬系统识别性能的方法。

另外,装置1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行装置1900的电源管理,该通信组件1950可以被配置为实现装置1900的通信,例如,有线或无线通信。此外,该装置1900还可以包括输入/输出(i/o)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的增强反爬系统识别性能的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由装置1900的处理器1922执行以完成上述的增强反爬系统识别性能的方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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