首页 / 专利库 / 软件 / 网络机器人 / 网络爬虫 / 网络爬虫识别方法、装置、计算机设备和存储介质

网络爬虫识别方法、装置、计算机设备和存储介质

阅读:1025发布:2020-06-22

专利汇可以提供网络爬虫识别方法、装置、计算机设备和存储介质专利检索,专利查询,专利分析的服务。并且本 申请 涉及一种 网络爬虫 识别方法、系统、计算机设备和存储介质。方法包括:接收多个资源 访问 请求 ,每个资源访问请求中包含请求端标识和资源标识;提取相同请求端标识所对应的资源标识,形成每个请求端的资源标识集合;将资源标识集合中的所有资源标识和预设的资源结构树中的资源 节点 进行匹配,将与资源标识相匹配的资源节点作为访问节点;当存在孤立的访问节点时,判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端;其中,孤立的访问节点所对应的 子节点 的 父节点 不是访问节点。采用本方法能够提高网络爬虫识别的准确性,从而提高了网络爬虫的识别效率。,下面是网络爬虫识别方法、装置、计算机设备和存储介质专利的具体信息内容。

1.一种网络爬虫识别方法,所述方法包括:
接收多个资源访问请求,每个资源访问请求中包含请求端标识和资源标识;
提取相同请求端标识所对应的资源标识,形成每个请求端的资源标识集合;
将所述资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与所述资源标识相匹配的资源节点作为访问节点;
若一个访问节点的父节点不是访问节点,将所述访问节点标记为孤立的访问节点;
当存在孤立的访问节点时,判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
2.根据权利要求1所述的方法,其特征在于,在所述将所述资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与所述资源标识相匹配的资源节点作为访问节点之后,还包括:
当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数;
获取每个访问节点的节点权重;
根据每个访问节点的匹配次数和相应的节点权重进行计算,得到与所述资源标识集合对应的综合权重;
当所述综合权重小于预设权重时,则判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
3.根据权利要求2所述的方法,其特征在于,所述获取每个访问节点的节点权重,包括:
计算访问节点所对应的子页面资源与所述访问节点的父节点所对应的父页面资源的页面相似度;
统计所述子页面资源中包含的无关资源的第一数量,和所述子页面资源中包含的更新资源的第二数量,所述更新资源为父页面资源中不包含的无关资源;
根据所述页面相似度、第一数量和第二数量进行计算,得到每个访问节点的节点权重。
4.根据权利要求3所述的方法,其特征在于,所述无关资源包括图片资源、JS脚本资源及广告资源中的至少一种。
5.根据权利要求1所述的方法,其特征在于,在所述将所述资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与所述资源标识相匹配的资源节点作为访问节点之后,还包括:
当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数;
当存在所述匹配次数大于预设次数的访问节点时,则判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
6.根据权利要求1至5任意一项所述的方法,其特征在于,在所述判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端之后,还包括:
发送身份验证页面至所述网络爬虫所对应的请求端进行身份验证。
7.根据权利要求1至5任意一项所述的方法,其特征在于,在所述判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端之后,还包括:
判断所述网络爬虫所对应的请求端标识是否为白名单爬虫标识;
若是,则通过所述网络爬虫发起的资源访问请求;
若否,则拒绝所述网络爬虫发起的资源访问请求。
8.一种网络爬虫识别装置,其特征在于,所述装置包括:
资源访问请求接收模,用于接收多个资源访问请求,每个资源访问请求中包含请求端标识和资源标识;
资源标识提取模块,用于提取相同请求端标识所对应的资源标识,形成每个请求端的资源标识集合;
资源节点匹配模块,用于将所述资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与所述资源标识相匹配的资源节点作为访问节点;若一个访问节点的父节点不是访问节点,将所述访问节点标记为孤立的访问节点;
网络爬虫识别模块,用于当存在孤立的访问节点时,判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

说明书全文

网络爬虫识别方法、装置、计算机设备和存储介质

技术领域

[0001] 本申请涉及互联网技术领域,特别是涉及一种网络爬虫识别方法、装置、计算机设备和存储介质。

背景技术

[0002] 随着互联网技术的发展,出现了网络爬虫技术。网络爬虫又被称为网页蜘蛛或网络机器人等,是一种按照一定的规则自动地抓取万维网信息的程序或者脚本。网络爬虫会造成过大的服务器,还可能造成大量数据泄露。因此许多网站通过反爬虫来阻止网络爬虫的访问
[0003] 然而,传统的反爬虫方式,通常是通过监控对请求端IP地址和相应的请求频繁度,来判断请求端是爬虫还是正常终端。当检测到同一IP地址的在一定时长内的请求频繁度高于预设的次数,则可判断该IP地址对应的请求端是爬虫。而针对这种传统的反爬虫方式,只要建立了代理IP池,爬虫就能够在访问目标网址时通过轮换代理IP地址实现访问,从而避免被识别出来。因此,传统反爬虫方式识别网络爬虫的效率较低。发明内容
[0004] 基于此,有必要针对上述技术问题,提供一种能够提高网络爬虫识别效率的网络爬虫识别方法、装置、计算机设备和存储介质。
[0005] 一种网络爬虫识别方法,所述方法包括:接收多个资源访问请求,每个资源访问请求中包含请求端标识和资源标识;提取相同请求端标识所对应的资源标识,形成每个请求端的资源标识集合;将所述资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与所述资源标识相匹配的资源节点作为访问节点;当存在孤立的访问节点时,判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端;其中,孤立的访问节点所对应的子节点父节点不是访问节点。
[0006] 在其中一个实施例中,在所述将所述资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与所述资源标识相匹配的资源节点作为访问节点之后,还包括:当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数;获取每个访问节点的节点权重;根据每个访问节点的匹配次数和相应的节点权重进行计算,得到与所述资源标识集合对应的综合权重;当所述综合权重小于预设权重时,则判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0007] 在其中一个实施例中,所述获取每个访问节点的节点权重,包括:计算访问节点所对应的子页面资源与所述访问节点的父节点所对应的父页面资源的页面相似度;统计所述子页面资源中包含的无关资源的第一数量,和所述子页面资源中包含的更新资源的第二数量,所述更新资源为父页面资源中不包含的无关资源;根据所述页面相似度、第一数量和第二数量进行计算,得到每个访问节点的节点权重。
[0008] 在其中一个实施例中,所述无关资源包括图片资源、JS脚本资源及广告资源中的至少一种。
[0009] 在其中一个实施例中,在所述将所述资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与所述资源标识相匹配的资源节点作为访问节点之后,还包括:当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数;当存在所述匹配次数大于预设次数的访问节点时,则判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0010] 在其中一个实施例中,在所述判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端之后,还包括:发送身份验证页面至所述网络爬虫所对应的请求端进行身份验证。
[0011] 在其中一个实施例中,在所述判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端之后,还包括:判断所述网络爬虫所对应的请求端标识是否为白名单爬虫标识;若是,则通过所述网络爬虫发起的资源访问请求;若否,则拒绝所述网络爬虫发起的资源访问请求。
[0012] 一种网络爬虫识别装置,所述装置包括:资源访问请求接收模,用于接收多个资源访问请求,每个资源访问请求中包含请求端标识和资源标识;资源标识提取模块,用于提取相同请求端标识所对应的资源标识,形成每个请求端的资源标识集合;资源节点匹配模块,用于将所述资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与所述资源标识相匹配的资源节点作为访问节点;网络爬虫识别模块,用于当存在孤立的访问节点时,判定所述资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端;其中,孤立的访问节点所对应的子节点的父节点不是访问节点。
[0013] 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述各个实施例中所述的网络爬虫识别方法的步骤。
[0014] 一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述各个实施例中所述的网络爬虫识别方法的步骤。
[0015] 上述网络爬虫识别方法、装置、计算机设备和存储介质,根据正常终端的访问逻辑构建资源结构树之后,通过提取具有相同请求端标识的资源访问请求所对应的资源标识形成每个请求端的资源标识集合,并将资源标识集合中的所有资源标识和资源结构树中的资源节点进行匹配,得到资源结构树中与资源标识集合所对应的所有访问节点,当检测到存在孤立的访问节点时,判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。通过网络爬虫的访问特性识别出网络爬虫,避免了遗漏通过轮换代理IP地址进行资源访问的网络爬虫,提高了网络爬虫识别的准确性,从而提高了网络爬虫的识别效率。附图说明
[0016] 图1为一个实施例中网络爬虫识别方法的应用场景图;
[0017] 图2为一个实施例中网络爬虫识别方法的流程示意图;
[0018] 图3A为一个实施例中第一资源标识集合的资源结构树的示意图;
[0019] 图3B为一个实施例中第二资源标识集合的资源结构树的示意图;
[0020] 图4为一个实施例中当不存在孤立的访问节点时识别网络爬虫的步骤的流程示意图;
[0021] 图5为另一个实施例中网络爬虫识别方法的流程示意图;
[0022] 图6为一个实施例中网络爬虫识别装置的结构框图
[0023] 图7为一个实施例中计算机设备的内部结构图。

具体实施方式

[0024] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0025] 可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语的限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一资源标识集合称为第二资源标识集合,且类似地,可将第二资源标识集合称为第一资源标识集合。第一终端和第二资源标识集合两者都是资源标识集合,但其不是同一资源标识集合。
[0026] 本申请提供的网络爬虫识别方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。服务器104可接收终端102发送的资源访问请求。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0027] 在一个实施例中,如图2所示,提供了一种网络爬虫识别方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
[0028] 步骤202,接收多个资源访问请求,每个资源访问请求中包含请求端标识和资源标识。
[0029] 资源访问请求是指由请求端发送的用于向服务器索要资源的请求。其中,请求端可为个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备的终端,也可为通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的虚拟机。请求端标识是指用于将每个请求端区分于其他请求端的标识,包括但不限于网络接口卡(NIC)、虚拟NIC(vNIC)、IP地址或域名系统(DNS)名称或cookie等其中一种或多种的组合。资源标识是指用于将每个目标资源区分于其他目标资源的标识,其中,目标资源包括但不限于网页资源、图片资源、文本资源、JS脚本资源及广告资源等静态资源,还可以是后台数据库中的动态资源。动态资源是指用于动态填充至网页的数据。每个请求端都可以发送一个或多个资源访问请求。
[0030] 在一个实施例中,服务器接收到请求端发送的资源访问请求之后,可以根据资源访问请求中的资源标识从服务器中的磁盘中取出相应的静态资源,或者服务器也可以将资源访问请求发送至WEB容器,通过WEB容器从后台数据库中获取动态资源。根据获取的静态资源和/或动态资源可生成资源访问响应并发动至与资源访问请求中的请求端标识所对应的请求端。其中,资源访问响应可以用于指示请求端通过浏览器根据获取的目标资源进行渲染,生成目标页面。
[0031] 步骤204,提取相同请求端标识所对应的资源标识,形成每个请求端的资源标识集合。
[0032] 资源标识集合是指由相同请求端标识所对应的资源标识所构成的集合。一个资源标识集合可以包含一个请求端所访问的所有资源所对应的资源标识。可以持续对资源访问请求中的资源标识进行提取,也可以根据预设时间段内接收的资源访问请求,提取相同请求端标识所对应的资源标识。
[0033] 在一个实施例中,还可以将接收的多个资源访问请求,存储为资源访问记录。其中,每条资源访问记录可包括资源标识、请求端标识及资源访问请求接收时间,可根据请求端标识将资源访问记录进行分类。还可以根据资源访问请求接收时间筛选出预设时间段内接收的资源访问请求之后,再从中提取相同请求端标识所对应的资源标识。
[0034] 步骤206,将资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与资源标识相匹配的资源节点作为访问节点。
[0035] 资源结构树是指按照正常终端访问资源的访问逻辑所构建的资源结构树。资源结构树中包含多个资源节点,每个资源节点代表了相应目标资源在访问逻辑中所处的节点。目标资源是指请求端所能够请求访问的目标资源。比如,正常终端在访问页面A之后需要点击页面A中的按钮B才能跳转至页面C,则页面A节点是页面C节点的父节点。每个资源标识都在资源结构树中有对应的资源节点,可以将资源标识集合中的所有资源标识按照预设的遍历路径与资源结构树中的每个资源节点进行匹配,将存在相匹配的资源标识的资源节点作为访问节点。访问节点是指请求端所访问过的目标资源在资源结构树中对应的节点。
[0036] 在一个实施例中,可以预设一个参数n标记访问节点,参数n可以为资源标识集合中与访问节点匹配的资源标识的数量。若请求端发起了3次对资源节点K所对应目标资源的资源访问请求,则资源标识集合中与该资源节点K匹配的资源标识为3个,则n为3。
[0037] 步骤208,当存在孤立的访问节点时,判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0038] 其中,孤立的访问节点所对应的子节点的父节点不是访问节点。由于正常终端会按照正常的访问逻辑来发起资源访问请求,而通过网络爬虫所发起的请求可不符合正常的访问逻辑,因此当检测到与资源标识集合对应的资源结构树中存在孤立的访问节点时,即当存在访问节点所对应的子节点的父节点不是访问节点时,可判定存在不符合正常的访问逻辑的资源访问请求,该资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0039] 在一个实施例中,在检测孤立的访问节点时,还包括判断孤立的访问节点是否为根节点,若是,则判定该根节点所对应的访问节点不为孤立的访问节点。其中,根节点可为网站初始页对应的节点。举例来说,图3A为第一资源标识集合的资源结构树的示意图,图3B为第二资源标识集合的资源结构树的示意图。图3A和图3B可代表一个四层网站架构的站点地图,每个资源节点代表网站中的一个网页。其中,实心圆代表访问节点,空心圆代表与资源访问集合中没有相匹配资源标识的资源节点。图3A中除根节点00a之外,其余访问节点的父节点都为访问节点,符合正常的访问逻辑。图3B中除根节点00b之外,访问节点24b、31b及32b的父节点都不是访问节点,则访问节点24b、31b及32b都为孤立的访问节点,可判定第二资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0040] 上述网络爬虫识别方法中,根据正常终端的访问逻辑构建资源结构树之后,通过提取具有相同请求端标识的资源访问请求所对应的资源标识形成每个请求端的资源标识集合,并将资源标识集合中的所有资源标识和资源结构树中的资源节点进行匹配,得到资源结构树中与资源标识集合所对应的所有访问节点,当检测到存在孤立的访问节点时,判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。通过网络爬虫的访问特性识别出网络爬虫,避免了遗漏通过轮换代理IP地址进行资源访问的网络爬虫,提高了网络爬虫识别的准确性,从而提高了网络爬虫的识别效率。
[0041] 在一个实施例中,在将资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与资源标识相匹配的资源节点作为访问节点之后,还包括当不存在孤立的访问节点时识别网络爬虫的步骤。如图4所示,该步骤包括:
[0042] 步骤402,当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数。
[0043] 将资源标识集合中的所有资源标识按照预设的遍历路径与资源结构树中的每个资源节点进行匹配时,可统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数。其中,匹配次数是指资源标识集合中与访问节点匹配的资源标识的数量。还可在将资源标识集合按照预设的遍历路径与资源结构树进行匹配的过程中,将与资源节点匹配的资源标识进行标记,使具有标记的资源标识不再进行之后与其他资源节点的匹配,节约匹配时间。
[0044] 步骤404,获取每个访问节点的节点权重。
[0045] 节点权重表示正常终端访问该访问节点所对应资源的可能程度。正常终端访问的可能程度越大,通过网络爬虫发起资源访问请求的可能性越小,则节点权重越大;访问的可能程度越小,通过网络爬虫发起资源访问请求的可能性越大,则节点权重越小。同一资源节点下可包含的多个子资源节点,比如同一页面资源中包含的多个URL(Uniform Resource Locator,统一资源定位符),一个URL即为一个页面资源,因此每个URL都可对应一个子资源节点。举例来说,图3A中的访问节点21a和22a都为访问节点11a的子节点,但是正常终端访问访问节点21a所对应目标资源的可能性与访问访问节点22a所对应目标资源的可能性可不一致。
[0046] 在一个实施例中,对于页面资源来说,由于通过网络爬虫发起的资源访问请求都具有针对性,访问无关资源的概率较低,因此可以结合每个页面资源中的无关资源占比计算每个子资源节点的权重。其中,无关资源包括图片资源、JS脚本资源及广告资源中的至少一种。广告资源包括关键字搜索之后在页面上的关键字广告资源,图片、flash动画、视频等展示类广告资源,广告文字对应超链接的超链接广告资源等。
[0047] 步骤406,根据每个访问节点的匹配次数和相应的节点权重进行计算,得到与资源标识集合对应的综合权重。
[0048] 综合权重表示资源标识集合所对应的请求端为正常终端的可能性。综合权重越大,则请求端为正常终端的概率越大。
[0049] 在一个实施例中,可以将每个访问节点的匹配次数乘以相应的节点权重之后进行求和,得到与资源标识集合对应的综合权重。
[0050] 步骤408,当综合权重小于预设权重时,则判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0051] 当综合权重小于预设权重时,则判定资源访问请求为爬虫请求,资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。当综合权重大于等于预设权重时,则判定请求端为正常终端。
[0052] 上述实施例中,统计得到匹配次数并获取相应的节点权重之后,可通过匹配次数和节点权重计算得到综合权重来判断终端是否为正常终端,提高了网络爬虫识别的精准度。
[0053] 在一个实施例中,获取每个访问节点的节点权重,包括:计算访问节点所对应的子页面资源与访问节点的父节点所对应的父页面资源的页面相似度;统计子页面资源中包含的无关资源的第一数量,和子页面资源中包含的更新资源的第二数量,更新资源为父页面资源中不包含的无关资源;根据页面相似度、第一数量和第二数量进行计算,得到每个访问节点的节点权重。
[0054] 第一数量是指子页面资源中包含的无关资源的数量,第二数量是指子页面资源中包含的更新资源的数量。其中,更新资源是指仅存在于子页面资源而不再父页面资源中的无关资源。
[0055] 可通过站点特征、路径特征和路径深度特征等特征来计算访问节点所对应的子页面资源Q,与访问节点的父节点所对应的父页面资源P的页面相似度。还可以根据子页面资源Q和父页面资源P的特征生成相应的特征向量量 和 通过空间向量相似度公式计算子页面资源Q和父页面资源P的页面相似度
再根据页面相似度通过下列公式计算子页面资源Q的节点权重W(UQ)=δ×(1-
sim(UP,UQ))×W(UP)+(1-δ)×θ。其中,δ是常数,θ是全局统计参数, 当Q页面中没有无关资源时,θ为1,当页面中有无关资源时,θ通过 计算得到。totalQ为子页面资源Q中包含的无关资源的第一数量。newQ为子页面资源Q中包含的更新资源的第二数量。其中,更新资源是指子页面资源Q中存在而父页面资源P中不存在的无关资源。W(UP)是指页面资源P的节点权重。
[0056] 在一个实施例中,根节点的节点权重可预设为1。其余子节点的访问节点的范围为0至1。
[0057] 举例来说,针对图3A中的访问节点00a、11a、12a、21a、22a、24a及33a,可统计得到匹配次数分别为N00、N11、N12、N21、N22、N24、N33,还可计算得到相应节点权重分别为W00、W11、W12、W21、W22、W24、W33,则与图3A中所示的资源结构树所对应的请求端的综合权重WA可通过下式计算得到:
[0058] WA=N00×W00+N11×W11+N12×W12+N21×W21+N22×W22+N24×W24+N33×W33
[0059] 上述实施例中,通过计算访问节点与其父节点所对应的页面资源之间的相似度,得到该访问节点的节点权重,使得计算得到的节点权重不但与访问节点本身的特征有关,还结合了访问节点处于资源结构树中的位置特征,提高了节点权重的精准度,从而提高了网络爬虫识别的效率。
[0060] 在一个实施例中,在将资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与资源标识相匹配的资源节点作为访问节点之后,还包括:当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数;当存在匹配次数大于预设次数的访问节点时,则判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0061] 还可以接收预设时长之内的多个资源访问请求,在提取相同请求端标识所对应的资源标识,形成每个请求端的资源标识集合之后,统计请求端的资源标识集合与资源结构树中的资源节点总共的匹配次数,当总共的匹配次数大于预设总共次数时,则判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0062] 在一个实施例中,在判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端之后,还包括:发送身份验证页面至网络爬虫所对应的请求端进行身份验证。
[0063] 可以在判定还可以在资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端之后,当再次接收到包含该请求端标识的资源访问请求时,拦截该资源访问请求,并调取预设的身份验证页面发送至与网络爬虫所对应的请求端进行身份验证。若验证不通过,则发送验证不通过的页面至该请求端;若验证通过,还可以每隔预设时长发送预设的身份验证页面至该请求端。
[0064] 在一个实施例中,在判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端之后,还包括:判断网络爬虫所对应的请求端标识是否为白名单爬虫标识;若是,则通过网络爬虫发起的资源访问请求;若否,则拒绝网络爬虫发起的资源访问请求。
[0065] 白名单爬虫标识是指处于爬虫白名单的网络爬虫所对应的请求端标识。举例来说,可以预设爬虫白名单,将一些允许访问的网络爬虫的IP地址存入爬虫白名单,当识别到网络爬虫之后,将该网络爬虫的IP地址与爬虫白名单中所有的白名单爬虫标识的IP地址进行匹配,若网络爬虫所对应的请求端标识为白名单爬虫标识,则不限制访问。比如说,百度爬虫通常是baidu.com或者baidu.jp的子域名,google爬虫通常是googlebot.com的子域名,微软bing搜索引擎爬虫是search.msn.com的子域名,搜狗爬虫是rawl.sogou.com的子域名。可将这些搜索引擎的子域名存储至爬虫白名单,当检测相应的子域名时,可通过网络爬虫发起的资源访问请求。通过预设爬虫白名单,能够更快捷地筛选出允许通过的资源访问请求,降低了拒绝正常资源访问请求的错误率。
[0066] 在一个实施例中,如图5所示,提供了另一种网络爬虫方法,该方法包括以下步骤:
[0067] 步骤502,接收多个资源访问请求,每个资源访问请求中包含请求端标识和资源标识。
[0068] 举例来说,可接收多个请求端发送的资源访问请求,资源访问请求中可包含网络接口卡(NIC)、虚拟NIC(vNIC)、IP地址或域名系统(DNS)名称或cookie等请求端标识,以及资源访问请求的目标资源,比如说网页资源、图片资源、文本资源、JS脚本资源及广告资源等。
[0069] 步骤504,提取相同请求端标识所对应的资源标识,形成每个请求端的资源标识集合。
[0070] 举例来说,可以每隔预设时间段将接收的资源访问请求进行统计,或者可以在接收资源访问请求的同时记录资源访问请求接收时间,根据资源访问请求接收时间统计预设时长内,相同请求端标识所对应的资源标识。
[0071] 步骤506,将资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与资源标识相匹配的资源节点作为访问节点。
[0072] 举例来说,可将资源标识集合按照预设的遍历路径与资源结构树中的每个资源节点进行匹配,还可在将资源标识集合中的资源标识匹配每个资源节点时,统计匹配次数。
[0073] 步骤508,检测是否存在孤立的访问节点。
[0074] 孤立的访问节点是指父节点不为访问节点的访问节点。如图3B中的访问节点24b、31b及32b都为孤立的访问节点。若是,则执行步骤510;若否则执行步骤512。
[0075] 步骤510,判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0076] 举例来说,当存在孤立的访问节点时,可判断与该资源标识集合对应的请求端标识是否为白名单爬虫标识,若否,则不再通过包含该请求端标识的资源访问请求。
[0077] 步骤512,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数。
[0078] 举例来说,可以预设一个参数n,参数n初始值为0,每检测到一个与访问节点匹配的资源标识则执行n=n+1。
[0079] 步骤514,计算访问节点所对应的子页面资源与访问节点的父节点所对应的父页面资源的页面相似度。
[0080] 举例来说,根据子页面资源Q和父页面资源P的特征生成相应的特征向量量 和之后,可通过空间向量相似度公式 计算子页面资源Q和父页面资源P的页面相似度
[0081] 步骤516,统计子页面资源中包含的无关资源的第一数量,和子页面资源中包含的更新资源的第二数量,更新资源为父页面资源中不包含的无关资源。
[0082] 由于网络爬虫通常为了节省带宽,提高响应速度,对于与网络爬虫无用的无关资源,网络爬虫不会去请求,但是对正常网页渲染显示必须的目标资源,正常终端会对无关资源进行请求,因此当不存在孤立的访问节点时,还可根据资源访问请求所对应的无关资源进行网络爬虫的识别。
[0083] 步骤518,根据页面相似度、第一数量和第二数量进行计算,得到每个访问节点的节点权重。
[0084] 举例来说,在计算得到页面相似度 之后,可根据页面相似度通过公式W(UQ)=δ×(1-sim(UP,UQ))×W(UP)+(1-δ)×θ计算子页面资源Q的节点权重W(UQ)。其中,δ是常数,θ是全局统计参数, 当Q页面中没有无关资源时,θ为1,当页面中有无关资源时,θ通过 计算得到。totalQ为子页面资源Q中包含的无关资源的第一数量。newQ为子页面资源Q中包含的更新资源的第二数量。其中,更新资源是指子页面资源Q中存在而父页面资源P中不存在的无关资源。W(UP)是指页面资源P的节点权重。
[0085] 步骤520,根据每个访问节点的匹配次数和相应的节点权重进行计算,得到与资源标识集合对应的综合权重。
[0086] 步骤522,当综合权重小于预设权重时,则判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0087] 上述实施例中,通过将资源标识集合与资源结构树进行匹配之后,判断是否存在孤立的访问节点。当不存在孤立的访问节点时,通过访问节点所对应的目标资源与其父节点所对应的目标资源之间的相似度,以及访问节点中包含的无关资源情况,计算得到每个访问节点的节点权重。降低了网络爬虫识别的遗漏可能性,从而提高了网络爬虫的识别效率。
[0088] 应该理解的是,虽然图2和5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0089] 在一个实施例中,如图6所示,提供了一种网络爬虫识别装置600,包括:资源访问请求接收模块602,用于接收多个资源访问请求,每个资源访问请求中包含请求端标识和资源标识;资源标识提取模块604,用于提取相同请求端标识所对应的资源标识,形成每个请求端的资源标识集合;资源节点匹配模块606,用于将资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与资源标识相匹配的资源节点作为访问节点;网络爬虫识别模块608,用于当存在孤立的访问节点时,判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端;其中,孤立的访问节点所对应的子节点的父节点不是访问节点。
[0090] 在一个实施例中,网络爬虫识别模块608还用于当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数;获取每个访问节点的节点权重;根据每个访问节点的匹配次数和相应的节点权重进行计算,得到与资源标识集合对应的综合权重;当综合权重小于预设权重时,则判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0091] 在一个实施例中,网络爬虫识别模块608还用于计算访问节点所对应的子页面资源与访问节点的父节点所对应的父页面资源的页面相似度;统计子页面资源中包含的无关资源的第一数量,和子页面资源中包含的更新资源的第二数量,更新资源为父页面资源中不包含的无关资源;根据页面相似度、第一数量和第二数量进行计算,得到每个访问节点的节点权重。
[0092] 在一个实施例中,无关资源包括图片资源、JS脚本资源及广告资源中的至少一种。
[0093] 在一个实施例中,网络爬虫识别模块608还用于当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数;当存在匹配次数大于预设次数的访问节点时,则判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0094] 在一个实施例中,网络爬虫识别模块608还用于发送身份验证页面至网络爬虫所对应的请求端进行身份验证。
[0095] 在一个实施例中,网络爬虫识别模块608还用于判断网络爬虫所对应的请求端标识是否为白名单爬虫标识;若是,则通过网络爬虫发起的资源访问请求;若否,则拒绝网络爬虫发起的资源访问请求。
[0096] 关于网络爬虫识别装置的具体限定可以参见上文中对于网络爬虫识别方法的限定,在此不再赘述。上述网络爬虫识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0097] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储静态资源、动态资源及资源结构树等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种网络爬虫识别方法。
[0098] 本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0099] 在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收多个资源访问请求,每个资源访问请求中包含请求端标识和资源标识;提取相同请求端标识所对应的资源标识,形成每个请求端的资源标识集合;将资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与资源标识相匹配的资源节点作为访问节点;当存在孤立的访问节点时,判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端;其中,孤立的访问节点所对应的子节点的父节点不是访问节点。
[0100] 在一个实施例中,处理器执行计算机程序时,在实现将资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与资源标识相匹配的资源节点作为访问节点的步骤之后,还实现以下步骤:当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数;获取每个访问节点的节点权重;根据每个访问节点的匹配次数和相应的节点权重进行计算,得到与资源标识集合对应的综合权重;当综合权重小于预设权重时,则判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0101] 在一个实施例中,处理器执行计算机程序时,所实现获取每个访问节点的节点权重的步骤,包括实现以下步骤:计算访问节点所对应的子页面资源与访问节点的父节点所对应的父页面资源的页面相似度;统计子页面资源中包含的无关资源的第一数量,和子页面资源中包含的更新资源的第二数量,更新资源为父页面资源中不包含的无关资源;根据页面相似度、第一数量和第二数量进行计算,得到每个访问节点的节点权重。
[0102] 在一个实施例中,无关资源包括图片资源、JS脚本资源及广告资源中的至少一种。
[0103] 在一个实施例中,处理器执行计算机程序时,在实现将资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与资源标识相匹配的资源节点作为访问节点的步骤之后,还实现以下步骤:当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数;当存在匹配次数大于预设次数的访问节点时,则判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0104] 在一个实施例中,处理器执行计算机程序时,在实现判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端的步骤之后,还实现以下步骤:发送身份验证页面至网络爬虫所对应的请求端进行身份验证。
[0105] 在一个实施例中,处理器执行计算机程序时,在实现判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端的步骤之后,还实现以下步骤:判断网络爬虫所对应的请求端标识是否为白名单爬虫标识;若是,则通过网络爬虫发起的资源访问请求;若否,则拒绝网络爬虫发起的资源访问请求。
[0106] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收多个资源访问请求,每个资源访问请求中包含请求端标识和资源标识;提取相同请求端标识所对应的资源标识,形成每个请求端的资源标识集合;将资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与资源标识相匹配的资源节点作为访问节点;当存在孤立的访问节点时,判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端;其中,孤立的访问节点所对应的子节点的父节点不是访问节点。
[0107] 在一个实施例中,计算机程序被处理器执行时,在实现将资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与资源标识相匹配的资源节点作为访问节点的步骤之后,还实现以下步骤:当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数;获取每个访问节点的节点权重;根据每个访问节点的匹配次数和相应的节点权重进行计算,得到与资源标识集合对应的综合权重;当综合权重小于预设权重时,则判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0108] 在一个实施例中,计算机程序被处理器执行时,所实现获取每个访问节点的节点权重的步骤,包括实现以下步骤:计算访问节点所对应的子页面资源与访问节点的父节点所对应的父页面资源的页面相似度;统计子页面资源中包含的无关资源的第一数量,和子页面资源中包含的更新资源的第二数量,更新资源为父页面资源中不包含的无关资源;根据页面相似度、第一数量和第二数量进行计算,得到每个访问节点的节点权重。
[0109] 在一个实施例中,无关资源包括图片资源、JS脚本资源及广告资源中的至少一种。
[0110] 在一个实施例中,计算机程序被处理器执行时,在实现将资源标识集合中的所有资源标识和预设的资源结构树中的资源节点进行匹配,将与资源标识相匹配的资源节点作为访问节点的步骤之后,还实现以下步骤:当不存在孤立的访问节点时,统计每个访问节点与资源标识集合中的资源标识匹配的匹配次数;当存在匹配次数大于预设次数的访问节点时,则判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端。
[0111] 在一个实施例中,计算机程序被处理器执行时,在实现判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端的步骤之后,还实现以下步骤:发送身份验证页面至网络爬虫所对应的请求端进行身份验证。
[0112] 在一个实施例中,计算机程序被处理器执行时,在实现判定资源标识集合对应的请求端为通过网络爬虫发起资源访问请求的请求端的步骤之后,还实现以下步骤:判断网络爬虫所对应的请求端标识是否为白名单爬虫标识;若是,则通过网络爬虫发起的资源访问请求;若否,则拒绝网络爬虫发起的资源访问请求。
[0113] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0114] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0115] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈