CN110245280B - 识别网络爬虫的方法、装置、存储介质和电子设备 - Google Patents
识别网络爬虫的方法、装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN110245280B CN110245280B CN201910373056.4A CN201910373056A CN110245280B CN 110245280 B CN110245280 B CN 110245280B CN 201910373056 A CN201910373056 A CN 201910373056A CN 110245280 B CN110245280 B CN 110245280B
- Authority
- CN
- China
- Prior art keywords
- data
- access
- feature
- crawler
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Abstract
本公开涉及一种识别网络爬虫的方法、装置、存储介质和电子设备,该方法包括:获取访问数据;确定所述访问数据的特征数据,其中,所述特征数据包括用于表征访问接口的分布特征的数据和/或用于表征访问时间的分布特征的数据;根据所述特征数据确定所述访问数据为用户数据或者爬虫数据。用于解决相关技术中基于IP的访问频次进行反爬的效果较差,以及基于对外交互设备的用户行为进行爬虫识别难以在移动终端的APP上应用的技术问题。
Description
技术领域
本公开的实施例涉及网络信息技术领域,具体地,涉及一种识别网络爬虫的方法、装置、存储介质和电子设备。
背景技术
爬虫是一种按照一定的规则,自动地抓取互联网上信息的程序或者脚本。爬虫可以帮助工作人员快速的获取网络上的大量数据,但一些恶意爬虫可能会侵犯用户隐私,或者增大服务器的负荷进而影响其提供正常的服务,因此有必要采取一定的反爬虫手段来阻止恶意爬虫的使用。
相关技术中,采用如下两种方法进行爬虫的识别:
一种方法是基于IP(Internet Protocol Address)的访问频次进行爬虫识别,对于不同的IP,通过统计每个IP的访问频次,当访问频次大于设定的阈值时,将其对应的IP进行加黑,拦截后续的访问数据。但是,对于有足够IP储备的爬虫,可以限制所拥有的每个IP的访问数量,如此,该方法就难以达到较好的反爬的效果。
另一种方法是基于对外交互设备的用户行为进行爬虫识别,该方法采集鼠标和键盘等对外交互设备的移动轨迹,并利用爬虫数据样本和正常用户数据进行训练,得到反爬模型用于线上识别爬虫,具有较高的识别准确率。但是,该方法依赖于网页前端JavaScript的信息采集,难以在移动终端的APP(应用程序,Application)上应用。
发明内容
本公开的实施例提供识别网络爬虫的方法、装置、存储介质和电子设备。
本公开实施例的第一方面,提供一种识别网络爬虫的方法,所述方法包括:
获取访问数据;
确定所述访问数据的特征数据,其中,所述特征数据包括用于表征访问接口的分布特征的数据和/或用于表征访问时间的分布特征的数据;
根据所述特征数据确定所述访问数据为用户数据或者爬虫数据。
可选地,所述根据所述特征数据确定所述访问数据为用户数据或者爬虫数据,包括:
将所述特征数据输入反爬虫模型,得到所述反爬虫模型输出的用于表征所述访问数据为用户数据或者爬虫数据的识别结果,其中,所述反爬虫模型是根据被标记为用户数据或爬虫数据的历史访问数据的特征数据训练得到的。
可选地,所述反爬虫模型是通过如下方式训练得到:
获取历史访问数据,所述历史访问数据被标记为用户数据或爬虫数据;
确定每一所述历史访问数据的特征数据;
将每一所述历史访问数据的标记作为该历史访问数据的特征数据的标记,并将每一所述历史访问数据的特征数据以及该特征数据的标记作为模型训练样本进行训练,以得到所述反爬虫模型。
可选地,所述确定所述访问数据的特征数据,包括:
确定所述访问数据在至少一个维度上的特征值,所述维度包括访问接口维度或者接口访问时间维度;
针对所述特征值所处维度对应的多个有序区间中的每一区间,根据该特征值是否处于该区间,确定该特征值所处维度对应的特征向量中对应该区间的元素值,该特征向量中的每一元素与所述多个有序区间中的每一区间一一对应,其中,每一维度对应的有序区间是基于历史访问数据在该维度上的特征值进行划分的,所述特征数据包括所述特征向量。
可选地,所述确定所述访问数据的特征数据,包括:
针对所述访问数据中的每一接口,根据该接口是否为接口词向量中任一元素对应的接口,确定所述访问数据在接口分布维度上的特征向量中的元素值,其中,所述接口分布维度上的特征向量与所述接口词向量中的元素一一对应,所述接口词向量是根据历史访问数据中每一接口的访问频次确定的,所述特征数据包括所述接口分布维度上的特征向量。
可选地,所述确定所述访问数据的特征数据,包括:
根据历史访问数据中的接口信息以及接口访问时间信息确定访问的接口数量随时间变化的离散序列;
确定所述离散序列中每一离散点的一阶导数和/或二阶导数;
所述特征数据包括由所述离散序列中每一离散点的一阶导数组成的特征向量和/或由所述离散序列中每一离散点的二阶导数组成的特征向量。
可选地,所述特征数据包括所述访问数据在至少一个维度上的特征值,所述根据所述特征数据确定所述访问数据为用户数据或者爬虫数据,包括:
判断所述至少一个维度上的特征值是否满足预设的爬虫判定条件;
若所述至少一个维度上的特征值满足预设的爬虫判定条件,则确定所述访问数据为爬虫数据。
本公开实施例的第二方面,提供一种识别网络爬虫的装置,所述装置包括:
访问数据获取模块,被配置为获取访问数据;
特征数据确定模块,被配置为确定所述访问数据的特征数据,其中,所述特征数据包括用于表征访问接口的特征的数据和/或用于表征访问时间的特征的数据;
数据类型确定模块,被配置为根据所述特征数据确定所述访问数据为用户数据或者爬虫数据。
可选地,所述数据类型确定模块还被配置为:
将所述特征数据输入反爬虫模型,得到所述反爬虫模型输出的用于表征所述访问数据为用户数据或者爬虫数据的识别结果,其中,所述反爬虫模型是根据被标记为用户数据或爬虫数据的历史访问数据的特征数据训练得到的。
可选地,所述反爬虫模型是通过如下方式训练得到:
获取历史访问数据,所述历史访问数据被标记为用户数据或爬虫数据;
确定每一所述历史访问数据的特征数据;
将每一所述历史访问数据的标记作为该历史访问数据的特征数据的标记,并将每一所述历史访问数据的特征数据以及该特征数据的标记作为模型训练样本进行训练,以得到所述反爬虫模型。
可选地,所述特征数据确定模块包括:
特征值确定子模块,被配置为确定所述访问数据在至少一个维度上的特征值,所述维度包括访问接口维度或者接口访问时间维度;
特征向量确定子模块,被配置为针对所述特征值所处维度对应的多个有序区间中的每一区间,根据该特征值是否处于该区间,确定该特征值所处维度对应的特征向量中对应该区间的元素值,该特征向量中的每一元素与所述多个有序区间中的每一区间一一对应,其中,每一维度对应的有序区间是基于历史访问数据在该维度上的特征值进行划分的,所述特征数据包括所述特征向量。
可选地,所述特征数据确定模块还被配置为:
针对所述访问数据中的每一接口,根据该接口是否为接口词向量中任一元素对应的接口,确定所述访问数据在接口分布维度上的特征向量中的元素值,其中,所述接口分布维度上的特征向量与所述接口词向量中的元素一一对应,所述接口词向量是根据历史访问数据中每一接口的访问频次确定的,所述特征数据包括所述接口分布维度上的特征向量。
可选地,所述特征数据确定模块包括:
离散序列确定子模块,被配置为根据历史访问数据中的接口信息以及接口访问时间信息确定访问的接口数量随时间变化的离散序列;
导数确定子模块,被配置为确定所述离散序列中每一离散点的一阶导数和/或二阶导数;
所述特征数据包括由所述离散序列中每一离散点的一阶导数组成的特征向量和/或由所述离散序列中每一离散点的二阶导数组成的特征向量。
可选地,所述特征数据包括所述访问数据在至少一个维度上的特征值,所述数据类型确定模块包括:
判断子模块,被配置为判断所述至少一个维度上的特征值是否满足预设的爬虫判定条件;
爬虫确定子模块,被配置为若所述至少一个维度上的特征值满足预设的爬虫判定条件,则确定所述访问数据为爬虫数据。
本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面中任一项所述方法的步骤。
通过上述技术方案,在获取访问数据后,确定所述访问数据的特征数据,其中,所述特征数据包括用于表征访问接口的分布特征的数据和/或用于表征访问时间的分布特征的数据;然后根据所述特征数据确定所述访问数据为用户数据或者爬虫数据。无需根据IP的访问频次来进行拦截,避免了使用IP的访问频次进行拦截造成的爬虫识别效果差的技术问题,且采用的特征数据具有泛化性,既可以用于识别来自PC端的访问数据,也可以识别来自移动终端的访问数据。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种识别网络爬虫的方法的流程图。
图2是根据一示例性实施例示出的一种训练反爬虫模型的方法的流程图。
图3是根据一示例性实施例示出的一种识别网络爬虫的方法包括的步骤中确定所述访问数据的特征数据的流程图。
图4是根据一示例性实施例示出的一种识别网络爬虫的装置的框图。
图5是根据一示例性实施例示出的一种识别网络爬虫的装置的特征数据确定模块的框图。
图6是根据一示例性实施例示出的一种识别网络爬虫的装置的特征数据确定模块的另一框图。
图7是根据一示例性实施例示出的一种识别网络爬虫的装置的数据类型确定模块的框图。
图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据一示例性实施例示出的一种识别网络爬虫的方法的流程图,如图1所示,该方法包括:
S10,获取访问数据;
S20,确定所述访问数据的特征数据,其中,所述特征数据包括用于表征访问接口的分布特征的数据和/或用于表征访问时间的分布特征的数据;
S30,根据所述特征数据确定所述访问数据为用户数据或者爬虫数据。
在步骤S10中,一条访问数据可以基于一个访问者的一次访问行为得到,访问者可以为用户或爬虫,一条访问数据可以包括同一访问者访问的接口信息,以及与该接口一一对应的访问时间信息,可以通过IP来区分不同的访问者,通过访问者停止访问的时长来确定一条访问数据,即当访问者超过一定时间没有访问任何接口,则认为该访问者停止了访问,进而将之前的接口信息和对应的访问时间信息作为一条访问数据。
举例来讲,若判定访问者停止访问的条件为访问者停止访问的时长大于或等于10分钟,现有一访问者于2018-01-01 8:01:00访问了接口URL1,于2018-01-01 8:01:02访问了URL2,于2018-01-01 8:01:10访问了接口URL3,且自访问URL3之后,于2018-01-01 8:20:00才访问下一个接口URL4,即访问者自访问URL3之后停止访问的时长超过10分钟,进而将访问接口URL1,URL2,URL3和对应的访问时间作为一条访问数据,而对应该条访问数据的访问过程视为一次访问。
获取访问数据后,执行步骤S20,确定所述访问数据的特征数据,其中,所述特征数据包括用于表征访问接口的分布特征的数据和/或用于表征访问时间的分布特征的数据。
可选地,本公开实施例中,确定所述访问数据的特征数据,包括:
确定所述访问数据在至少一个维度上的特征值,所述维度包括访问接口维度或者接口访问时间维度;
访问接口维度可以包括接口类型比例分布、接口流量分布和接口流量比例分布中的至少一者。沿用上述例子,可以根据接口的访问频次将接口分为高频接口和低频接口,例如URL1为高频接口,URL2和URL3为低频接口,URL1的总流量即访问量的总数为n1,URL2的总流量为n2,URL3的总流量为n3,则接口类型比例分布中的特征值可以包括高频接口类型数量与低频接口类型数量的比值,且该比值具体为1/2;接口流量分布中的特征值可以包括访问高频接口的总流量数和访问低频接口的总流量数中的至少一者,例如特征值为访问高频接口的总流量数,具体为n1;接口流量比例分布可以为访问高频接口的总流量与访问低频接口的总流量的比值,具体为n1/(n2+n3)。
访问时间维度可以包括访问时长分布、访问时间间隔分布、访问时间秒级分布和访问秒级数量分布中的至少一者。访问时长分布的特征值可以为一次访问的总时长,沿用上述例子,该特征值为访问URL1与访问URL3之间的时长,即10s;访问时间间隔分布的特征值可以为一次访问过程中访问相邻两个接口的访问时长的平均值,在上述例子中,访问URL1与URL2之间的时长为2s,访问URL2与URL3之间的时长为8s,进而该特征值为(2s+8s)/2=5s;访问时间秒级分布中的特征值可以为秒级数量也即一次访问过程中所访问的接口的访问时间的秒数种类的数量,例如URL1的访问秒级为00秒,URL2的访问秒级为02秒,URL3的访问秒级为10秒,进而URL1、URL2和URL3的访问秒级各不相同,该特征值即秒级数量为3;访问秒级数量分布中的特征值可以为不同秒级中的最大值,在上述例子中,00秒级、02秒级和10秒级的数量均为1,故其最大值也即该特征值为1。
上述维度可以较好的体现出访问数据的访问特征,例如对于访问时间秒级分布,爬虫的访问秒级多集中分布在特定的秒级例如03秒级和05秒级,而用户的访问秒级则随机分布在00秒级至59秒级共60个秒级之间,进而两者之间在访问时间秒级分布上有较大区别,用于爬虫识别具有较好的效果。
针对所述特征值所处维度对应的多个有序区间中的每一区间,根据该特征值是否处于该区间,确定该特征值所处维度对应的特征向量中对应该区间的元素值,该特征向量中的每一元素与所述多个有序区间中的每一区间一一对应,其中,每一维度对应的有序区间是基于历史访问数据在该维度上的特征值进行划分的,所述特征数据包括所述特征向量。
具体来讲,对于某一目标特征值,可以先基于历史访问数据在该目标特征值所在维度上的特征值划分多个有序区间,例如根据历史访问数据中的特征值中的最大值和最小值先等比例将其划分为若干个大区间,即每个大区间的长度相同,然后根据每个大区间内的特征值数量的多少,将每个大区间划分为若干个小区间,例如对于特征值数量较多的大区间,将其划分为较多个小区间,对于特征值数量较少的大区间,将其划分为较少个小区间,如此可以使得特征值的分布更加平均。当然,在其他的实施方式中,也可以采用其他的区间划分的方法,例如可以采用箱型法划分大区间,如此得到的每个大区间内的特征值的数量相近或相同。
得到有序区间后,针对上述目标特征值所处维度对应的多个有序区间中的每一区间,根据该特征值是否处于该区间,确定该特征值所处维度对应的特征向量中对应该区间的元素值,该特征向量中的每一元素与所述多个有序区间中的每一区间一一对应。在一种实施方式中,若特征值处于该区间,则特征向量中对应该区间的元素值为1,若特征值不处于该区间,则特征向量中对应该区间的元素值为0。举例来讲,接口类型比例分布中的特征值包括高频接口类型数量与低频接口类型数量的比值,且该比值具体为1/2,其对应的有序区间包括[0,1),[1,2),[2,3],由于1/2位于区间[0,1),则其对应的特征向量为[1,0,0]。
如此可以得到访问数据于对应维度上的特征向量,简化并统一了特征数据的形式,便于后续运算。
可选地,本公开实施例中,确定所述访问数据的特征数据,包括:
针对所述访问数据中的每一接口,根据该接口是否为接口词向量中任一元素对应的接口,确定所述访问数据在接口分布维度上的特征向量中的元素值,其中,所述接口分布维度上的特征向量与所述接口词向量中的元素一一对应,所述接口词向量是根据历史访问数据中每一接口的访问频次确定的,所述特征数据包括所述接口分布维度上的特征向量。
具体来讲,接口词向量为多个接口组成的向量,在一种实施方式中,对于一接口,基于历史访问数据,若其访问频次大于阈值,则将该接口纳入接口词向量中,也即接口词向量中的所有接口的访问频次均大于该阈值,如此可以将由于噪声导致的具有低访问频次的接口排除,而使用信息置信度更高的具有高访问频次的接口,如此可以降低资源消耗,加快计算速度。进一步,根据该接口是否为接口词向量中任一元素对应的接口,确定所述访问数据在接口分布维度上的特征向量中的元素值,在一种可能的实施方式中,若该接口存在于该接口词向量,则其对应的特征向量中对应位置的元素值为1,否则为0。沿用上述例子,接口词向量为[URL1,URL2,URL3,URL4],由于在一次访问过程中仅访问了URL1,URL2,URL3,故对应的特征向量为[1,1,1,0]。
如此可以得到访问数据于接口分布维度上的特征向量,简化并统一了特征数据的形式,便于后续运算。
确定所述访问数据的特征数据之后,执行步骤S30,根据所述特征数据确定所述访问数据为用户数据或者爬虫数据。
可选地,在一种实施方式中,根据所述特征数据确定所述访问数据为用户数据或者爬虫数据,包括:
将所述特征数据输入反爬虫模型,得到所述反爬虫模型输出的用于表征所述访问数据为用户数据或者爬虫数据的识别结果,其中,所述反爬虫模型是根据被标记为用户数据或爬虫数据的历史访问数据的特征数据训练得到的。
其中,反爬虫模型基于机器学习算法建立,例如可以为线性回归算法,本公开实施例对其采用何种机器学习算法不作具体限制。定期通过历史访问数据的特征数据训练反爬虫模型,可以增强该反爬虫模型对于爬虫的识别能力。如此,即使爬虫升级,反爬虫模型可以相应的进行升级,以识别最新出现的爬虫。
可选地,在另一实施方式中,所述特征数据包括所述访问数据在至少一个维度上的特征值,所述根据所述特征数据确定所述访问数据为用户数据或者爬虫数据,包括:
判断所述至少一个维度上的特征值是否满足预设的爬虫判定条件;
若所述至少一个维度上的特征值满足预设的爬虫判定条件,则确定所述访问数据为爬虫数据。
举例来讲,若该维度包括上述访问时间秒级分布,由于爬虫的访问秒级集中在03秒级和05秒级,而用户的访问秒级随机分布,则对应的爬虫判定条件可以为判定特征数据的访问秒级是否集中在03秒级或05秒级,若是,则判定为爬虫。具体地,可以通过一次访问的所有秒级类型的数量分布的方差,来判定访问秒级是否为随机分布,进而判定其为爬虫或用户。对于其他的维度,也可以指定类似的规则,例如对于访问时间间隔分布,由于爬虫的访问时间间隔小于用户的访问时间间隔,进而指定对应的爬虫判定条件为访问时间间隔小于时间间隔阈值时,判定对应的访问数据为爬虫数据。对于本领域技术人员来讲,很容易结合相关公知常识和惯用技术手段制定相应的爬虫条件,故对于爬虫判定条件的具体内容,在此不作赘述。
通过上述技术方案,在获取访问数据后,确定所述访问数据的特征数据,其中,所述特征数据包括用于表征访问接口的分布特征的数据和/或用于表征访问时间的分布特征的数据;然后根据所述特征数据确定所述访问数据为用户数据或者爬虫数据。无需根据IP的访问频次来进行拦截,避免了使用IP的访问频次进行拦截造成的爬虫是被效果差的技术问题,且采用的特征数据具有泛化性,既可以用于识别来自PC端的访问数据,也可以识别来自移动终端的访问数据。
可选地,如图2所示,所述反爬虫模型是通过如下方式训练得到:
S301,获取历史访问数据,所述历史访问数据被标记为用户数据或爬虫数据;
S302,确定每一所述历史访问数据的特征数据;
S303,将每一所述历史访问数据的标记作为该历史访问数据的特征数据的标记,并将每一所述历史访问数据的特征数据以及该特征数据的标记作为模型训练样本进行训练,以得到所述反爬虫模型。
在步骤S301中,获取被标记为用户数据或爬虫数据的历史访问数据,该标记过程可以通过人工标记完成。获取历史访问数据之后,执行步骤S302,确定每一所述历史访问数据的特征数据,该特征数据的具体形式和确定过程可以参照上述方法中访问数据的特征数据的形式和确定过程。确定特征数据之后,执行步骤S303,将每一所述历史访问数据的标记作为该历史访问数据的特征数据的标记,并将每一所述历史访问数据的特征数据以及该特征数据的标记作为模型训练样本进行训练,以得到所述反爬虫模型。反爬虫模型基于机器学习算法建立,故可以基于该特征数据和其对应的标记通过相应的机器学习算法进行训练,得到满足条件的反爬虫模型。该反爬虫模型可以基于最新的历史访问数据训练得到,进而使得反爬虫模型能够识别最新出现的爬虫,使其具有较强的爬虫识别能力。
可选地,如图3所示,本公开实施例中,确定所述访问数据的特征数据,包括:
S201,根据历史访问数据中的接口信息以及接口访问时间信息确定访问的接口数量随时间变化的离散序列;
S202,确定所述离散序列中每一离散点的一阶导数和/或二阶导数;
所述特征数据包括由所述离散序列中每一离散点的一阶导数组成的特征向量和/或由所述离散序列中每一离散点的二阶导数组成的特征向量。
在步骤S201中,根据历史访问数据中的接口信息以及接口访问时间信息确定访问的接口数量随时间变化的离散序列,例如该离散序列可以为一次访问过程中,每一秒对应的访问的接口数量。进而在步骤S202中,确定所述离散序列中每一离散点的一阶导数和/或二阶导数,采用相关的算法对该离散序列进行求导得到一阶导数或二阶导数用于组成特征向量,或同时得到一阶导数和二阶导数用于组成特征向量。该离散序列也可以仅基于一次访问的访问总时长和访问的接口总数量得到,进而将该总数量与该总时长之商作为一阶导数,将该一阶导数与该总时长之商作为二阶导数,举例来讲,在一次访问过程中,访问总时长为10s,访问的接口总数量为100个,进而得到的一阶导数为100/10=10,二阶导数为100/10/10=1。
结合上述描述,反爬虫模型可以如下表示:
f(x)=w1g1(x)+w2g′2(x)+w3g″2(x)+b
其中,g1(x)表示访问数据的特征数据,g′2(x)表示访问的接口数量随时间变化的离散序列的一阶导数,g″2(x)示访问的接口数量随时间变化的离散序列的二阶导数,w1,w2,w3,b为常量参数。
一阶导数和二阶导数类似于速度和加速度概念,即从特征数据中得到的表征新的信息的数据,如此可以扩充用于识别爬虫的特征数据,使得对爬虫的识别更加准确。
图4是根据一示例性实施例示出的一种识别网络爬虫的装置的框图,如图4所示,该装置100包括:
访问数据获取模块110,被配置为获取访问数据;
特征数据确定模块120,被配置为确定所述访问数据的特征数据,其中,所述特征数据包括用于表征访问接口的特征的数据和/或用于表征访问时间的特征的数据;
数据类型确定模块130,被配置为根据所述特征数据确定所述访问数据为用户数据或者爬虫数据。
可选地,该数据类型确定模块130还被配置为:
将所述特征数据输入反爬虫模型,得到所述反爬虫模型输出的用于表征所述访问数据为用户数据或者爬虫数据的识别结果,其中,所述反爬虫模型是根据被标记为用户数据或爬虫数据的历史访问数据的特征数据训练得到的。
可选地,该反爬虫模型是通过如下方式训练得到:
获取历史访问数据,所述历史访问数据被标记为用户数据或爬虫数据;
确定每一所述历史访问数据的特征数据;
将每一所述历史访问数据的标记作为该历史访问数据的特征数据的标记,并将每一所述历史访问数据的特征数据以及该特征数据的标记作为模型训练样本进行训练,以得到所述反爬虫模型。
可选地,如图5所示,该特征数据确定模块120包括:
特征值确定子模块121,被配置为确定所述访问数据在至少一个维度上的特征值,所述维度包括访问接口维度或者接口访问时间维度;
特征向量确定子模块122,被配置为针对所述特征值所处维度对应的多个有序区间中的每一区间,根据该特征值是否处于该区间,确定该特征值所处维度对应的特征向量中对应该区间的元素值,该特征向量中的每一元素与所述多个有序区间中的每一区间一一对应,其中,每一维度对应的有序区间是基于历史访问数据在该维度上的特征值进行划分的,所述特征数据包括所述特征向量。
可选地,该特征数据确定模块120还被配置为:
针对所述访问数据中的每一接口,根据该接口是否为接口词向量中任一元素对应的接口,确定所述访问数据在接口分布维度上的特征向量中的元素值,其中,所述接口分布维度上的特征向量与所述接口词向量中的元素一一对应,所述接口词向量是根据历史访问数据中每一接口的访问频次确定的,所述特征数据包括所述接口分布维度上的特征向量。
可选地,如图6所示,该特征数据确定模块120包括:
离散序列确定子模块123,被配置为根据历史访问数据中的接口信息以及接口访问时间信息确定访问的接口数量随时间变化的离散序列;
导数确定子模块124,被配置为确定所述离散序列中每一离散点的一阶导数和/或二阶导数;
所述特征数据包括由所述离散序列中每一离散点的一阶导数组成的特征向量和/或由所述离散序列中每一离散点的二阶导数组成的特征向量。
可选地,该特征数据包括所述访问数据在至少一个维度上的特征值,如图7所示,该数据类型确定模块130包括:
判断子模块131,被配置为判断所述至少一个维度上的特征值是否满足预设的爬虫判定条件;
爬虫确定子模块132,被配置为若所述至少一个维度上的特征值满足预设的爬虫判定条件,则确定所述访问数据为爬虫数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种电子设备的框图。例如,电子设备1900可以被提供为一服务器。参照图8,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的识别网络爬虫的方法。
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的识别网络爬虫的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的识别网络爬虫的方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (8)
1.一种识别网络爬虫的方法,其特征在于,所述方法包括:
获取访问数据;
确定所述访问数据的特征数据,其中,所述特征数据包括用于表征访问接口的分布特征的数据和/或用于表征访问时间的分布特征的数据,所述表征访问接口的分布特征的数据包括接口类型比例分布、接口流量分布和接口流量比例分布中的至少一者,所述表征访问时间的分布特征的数据包括访问时长分布、访问时间秒级分布和访问秒级数量分布中的至少一者;
根据所述特征数据确定所述访问数据为用户数据或者爬虫数据;
其中,所述根据所述特征数据确定所述访问数据为用户数据或者爬虫数据,包括:
将所述特征数据输入反爬虫模型,得到所述反爬虫模型输出的用于表征所述访问数据为用户数据或者爬虫数据的识别结果,其中,所述反爬虫模型是根据被标记为用户数据或爬虫数据的历史访问数据的特征数据周期训练得到的;
所述确定所述访问数据的特征数据,包括:
根据历史访问数据中的接口信息以及接口访问时间信息确定访问的接口数量随时间变化的离散序列;
确定所述离散序列中每一离散点的一阶导数和/或二阶导数;
所述特征数据包括由所述离散序列中每一离散点的一阶导数组成的特征向量和/或由所述离散序列中每一离散点的二阶导数组成的特征向量。
2.根据权利要求1所述的方法,其特征在于,所述反爬虫模型是通过如下方式训练得到:
获取历史访问数据,所述历史访问数据被标记为用户数据或爬虫数据;
确定每一所述历史访问数据的特征数据;
将每一所述历史访问数据的标记作为该历史访问数据的特征数据的标记,并将每一所述历史访问数据的特征数据以及该特征数据的标记作为模型训练样本进行训练,以得到所述反爬虫模型。
3.根据权利要求1所述的方法,其特征在于,所述确定所述访问数据的特征数据,包括:
确定所述访问数据在至少一个维度上的特征值,所述维度包括访问接口维度或者接口访问时间维度;
针对所述特征值所处维度对应的多个有序区间中的每一区间,根据该特征值是否处于该区间,确定该特征值所处维度对应的特征向量中对应该区间的元素值,该特征向量中的每一元素与所述多个有序区间中的每一区间一一对应,其中,每一维度对应的有序区间是基于历史访问数据在该维度上的特征值进行划分的,所述特征数据包括所述特征向量。
4.根据权利要求1所述的方法,其特征在于,所述确定所述访问数据的特征数据,包括:
针对所述访问数据中的每一接口,根据该接口是否为接口词向量中任一元素对应的接口,确定所述访问数据在接口分布维度上的特征向量中的元素值,其中,所述接口分布维度上的特征向量与所述接口词向量中的元素一一对应,所述接口词向量是根据历史访问数据中每一接口的访问频次确定的,所述特征数据包括所述接口分布维度上的特征向量。
5.根据权利要求1所述的方法,其特征在于,所述特征数据包括所述访问数据在至少一个维度上的特征值,所述根据所述特征数据确定所述访问数据为用户数据或者爬虫数据,包括:
判断所述至少一个维度上的特征值是否满足预设的爬虫判定条件;
若所述至少一个维度上的特征值满足预设的爬虫判定条件,则确定所述访问数据为爬虫数据。
6.一种识别网络爬虫的装置,其特征在于,所述装置包括:
访问数据获取模块,被配置为获取访问数据;
特征数据确定模块,被配置为确定所述访问数据的特征数据,其中,所述特征数据包括用于表征访问接口的特征的数据和/或用于表征访问时间的特征的数据,所述表征访问接口的分布特征的数据包括接口类型比例分布、接口流量分布和接口流量比例分布中的至少一者,所述表征访问时间的分布特征的数据包括访问时长分布、访问时间秒级分布和访问秒级数量分布中的至少一者;
数据类型确定模块,被配置为根据所述特征数据确定所述访问数据为用户数据或者爬虫数据;
其中,所述数据类型确定模块还被配置为:
将所述特征数据输入反爬虫模型,得到所述反爬虫模型输出的用于表征所述访问数据为用户数据或者爬虫数据的识别结果,其中,所述反爬虫模型是根据被标记为用户数据或爬虫数据的历史访问数据的特征数据周期训练得到的;
所述特征数据确定模块包括:
离散序列确定子模块,被配置为根据历史访问数据中的接口信息以及接口访问时间信息确定访问的接口数量随时间变化的离散序列;
导数确定子模块,被配置为确定所述离散序列中每一离散点的一阶导数和/或二阶导数;
所述特征数据包括由所述离散序列中每一离散点的一阶导数组成的特征向量和/或由所述离散序列中每一离散点的二阶导数组成的特征向量。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至5中任一项所述方法的步骤。
8.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1至5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910373056.4A CN110245280B (zh) | 2019-05-06 | 2019-05-06 | 识别网络爬虫的方法、装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910373056.4A CN110245280B (zh) | 2019-05-06 | 2019-05-06 | 识别网络爬虫的方法、装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110245280A CN110245280A (zh) | 2019-09-17 |
CN110245280B true CN110245280B (zh) | 2021-03-02 |
Family
ID=67883817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910373056.4A Active CN110245280B (zh) | 2019-05-06 | 2019-05-06 | 识别网络爬虫的方法、装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110245280B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111107074B (zh) * | 2019-12-13 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 一种防止网络爬虫窃取隐私数据的方法、训练方法及装置 |
CN112989157A (zh) * | 2019-12-13 | 2021-06-18 | 网宿科技股份有限公司 | 一种检测爬虫请求的方法和装置 |
CN111143654B (zh) * | 2019-12-25 | 2023-06-16 | 支付宝(杭州)信息技术有限公司 | 辅助识别爬虫的、爬虫识别方法、装置及电子设备 |
CN111368164B (zh) * | 2020-02-24 | 2023-05-09 | 支付宝(杭州)信息技术有限公司 | 一种爬虫识别模型训练、爬虫识别方法、装置、系统、设备及介质 |
CN111368163B (zh) * | 2020-02-24 | 2024-03-26 | 网宿科技股份有限公司 | 一种爬虫数据的识别方法、系统及设备 |
CN111914905B (zh) * | 2020-07-09 | 2021-07-20 | 北京人人云图信息技术有限公司 | 一种基于半监督的反爬虫系统及设计方法 |
CN113746790B (zh) * | 2020-07-22 | 2023-09-05 | 北京沃东天骏信息技术有限公司 | 一种异常流量管理方法、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106961444A (zh) * | 2017-04-26 | 2017-07-18 | 广东亿荣电子商务有限公司 | 一种基于隐马尔可夫模型的恶意网络爬虫检测方法 |
CN108763274A (zh) * | 2018-04-09 | 2018-11-06 | 北京三快在线科技有限公司 | 访问请求的识别方法、装置、电子设备及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9075825B2 (en) * | 2011-09-26 | 2015-07-07 | The University Of Kansas | System and methods of integrating visual features with textual features for image searching |
IL216059A (en) * | 2011-10-31 | 2016-11-30 | Verint Systems Ltd | A system and method for characterizing goals by analyzing social networks |
CN103310012B (zh) * | 2013-07-02 | 2016-09-28 | 北京航空航天大学 | 一种分布式网络爬虫系统 |
CN104391979B (zh) * | 2014-12-05 | 2017-12-19 | 北京国双科技有限公司 | 网络恶意爬虫识别方法及装置 |
CN105187396A (zh) * | 2015-08-11 | 2015-12-23 | 小米科技有限责任公司 | 识别网络爬虫的方法及装置 |
CN108429721B (zh) * | 2017-02-15 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 一种网络爬虫的识别方法及装置 |
CN109145179B (zh) * | 2017-07-26 | 2019-04-19 | 北京数安鑫云信息技术有限公司 | 一种爬虫行为检测方法及装置 |
CN108959524A (zh) * | 2018-06-28 | 2018-12-07 | 中译语通科技股份有限公司 | 一种识别数据爬虫的方法、系统及信息数据处理终端 |
CN109241733A (zh) * | 2018-08-07 | 2019-01-18 | 北京神州绿盟信息安全科技股份有限公司 | 基于Web访问日志的爬虫行为识别方法及装置 |
CN109561086A (zh) * | 2018-11-28 | 2019-04-02 | 四川长虹电器股份有限公司 | 一种利用人类行为学进行反爬虫的方法 |
-
2019
- 2019-05-06 CN CN201910373056.4A patent/CN110245280B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106961444A (zh) * | 2017-04-26 | 2017-07-18 | 广东亿荣电子商务有限公司 | 一种基于隐马尔可夫模型的恶意网络爬虫检测方法 |
CN108763274A (zh) * | 2018-04-09 | 2018-11-06 | 北京三快在线科技有限公司 | 访问请求的识别方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110245280A (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245280B (zh) | 识别网络爬虫的方法、装置、存储介质和电子设备 | |
CN108769077B (zh) | 一种网络安全溯源分析的方法及装置 | |
US9426177B2 (en) | Method and apparatus for detecting security vulnerability for animation source file | |
EP3026864B1 (en) | Method and device for identifying bot access | |
CN109241343B (zh) | 一种刷量用户识别系统、方法及装置 | |
CN110609937A (zh) | 一种爬虫识别方法及装置 | |
CN103259805B (zh) | 基于用户评价的域名访问控制方法及系统 | |
US20170330107A1 (en) | Method for performing user profiling from encrypted network traffic flows | |
CN108763274A (zh) | 访问请求的识别方法、装置、电子设备及存储介质 | |
CN109582844A (zh) | 一种识别爬虫的方法、装置及系统 | |
CN108881138A (zh) | 一种网页请求识别方法及装置 | |
CN109150817A (zh) | 一种网页请求识别方法及装置 | |
CN109241733A (zh) | 基于Web访问日志的爬虫行为识别方法及装置 | |
CN114520736B (zh) | 一种物联网安全检测方法、装置、设备及存储介质 | |
CN102148867A (zh) | 一种基于用户权限的页面访问方法和设备 | |
CN107426136B (zh) | 一种网络攻击的识别方法和装置 | |
CN103902913A (zh) | 一种用于对web应用进行安全处理的方法与设备 | |
US8327196B2 (en) | Identifying an optimized test bit pattern for analyzing electrical communications channel topologies | |
CN116362359A (zh) | 基于ai大数据的用户满意度预测方法、装置、设备及介质 | |
US20180232753A1 (en) | Dynamic deterministic dwell times in a venue | |
CN110659954B (zh) | 作弊识别方法、装置、电子设备及可读存储介质 | |
Castro-Arvizu et al. | Received signal strength–based indoor localization using a robust interacting multiple model–extended Kalman filter algorithm | |
CN105812204B (zh) | 一种基于连接度估计的递归域名服务器在线识别方法 | |
US20200059414A1 (en) | Prediction of a performance indicator | |
CN109450853B (zh) | 恶意网站判定方法、装置、终端及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |