一种反爬虫的方法、系统、设备及存储介质与流程

未命名 07-14 阅读:109 评论:0
1.本技术涉及计算机领域,尤其涉及一种反爬虫的方法、系统、设备及存储介质。
背景技术
::2.爬虫,又称为网页蜘蛛,为一种按照一定的规则自动地抓取网页信息的程序或者脚本,有些网站通过爬虫去采集其它的网站页面信息作为己用,大量的爬虫行为会对网页服务器造成巨大的压力,服务器性能会受到影响;且在云业务的互动中,当网站提供网页对外展示数据内容时,容易反复受到爬虫的侵扰,一些数据内容被非法的爬虫所爬取后,数据被恶意利用,因此,需要进行反爬虫的处理。3.然而相关技术中,反爬虫的方案管控不够灵活,升级维护成本较高。技术实现要素:4.本技术的一个目的是提供一种反爬虫的方法、系统、设备及存储介质,用以解决现有技术中没有能够灵活管控的反爬虫方案,升级维护成本较高的问题。5.根据本技术的一个方面,提供了一种反爬虫的方法,应用于边缘节点,所述方法包括:6.接收基于用户访问请求返回的响应流量;7.若判定需要对所述响应流量进行反爬虫处理,则对所述响应流量进行解析,得到请求对象数据的目标元素;8.使用预设信息对所述目标元素进行替换,以使在爬虫访问时无法识别所述目标元素实际表征的含义。9.进一步地,所述判定需要对所述响应流量进行反爬虫处理包括:10.若所述用户访问请求符合预设匹配规则,则判定需要对所述响应流量进行反爬虫处理;和/或,11.若所述响应流量符合预设匹配规则,则判定需要对所述响应流量进行反爬虫处理。12.进一步地,所述预设匹配规则包括以下至少之一:13.所述用户访问请求指示的对象类型属于爬虫程序可执行的目标对象类型;14.或者,所述用户访问请求指示的对象存在可被爬虫爬取的目标元素;15.或者,所述用户访问请求存在表征需要对所述响应流量进行反爬虫处理的标签标记。16.进一步地,所述对所述响应流量进行解析,得到请求对象数据的目标元素包括:17.对所述响应流量进行解析,得到解析后的请求对象数据;18.根据预设定位规则,对所述解析后的请求对象数据进行定位,得到定位数据;19.根据所述定位数据,确定所述请求对象数据的目标元素。20.进一步地,在接收基于用户访问请求返回的响应流量之前还包括:21.接收由管理平台的用户和/或代表用户在管理平台中配置的一方上传的预设匹配规则和/或预设信息生成字典。22.进一步地,使用预设信息对所述目标元素进行替换包括:23.使用预设信息生成字典对替换元素进行编码,得到所述预设信息;24.使用所述预设信息对所述目标元素进行替换。25.进一步地,所述方法还包括:26.根据所述替换元素以及预设信息生成字典,生成所述替换元素与预设信息之间的映射关系;27.所述使用预设信息对所述目标元素进行替换,包括:28.选定本次使用的替换元素;29.根据所述映射关系,确定本次使用的预设信息;30.使用本次确定的所述预设信息对所述目标元素进行替换。31.进一步地,所述方法还包括:32.在接收到来自管理平台的反爬虫功能开启信息时,确定为响应流量开启反爬虫服务。33.本技术实施例还提供了另一种反爬虫的方法,应用于管理平台,所述方法包括:34.展示设置页面;35.接收基于所述设置页面配置的相关信息;36.将配置好的相关信息发送至边缘节点中,以使所述边缘节点基于用户访问请求返回的响应流量确定请求对象数据的目标元素,使用预设信息对所述目标元素进行替换,以使在爬虫访问时无法识别所述目标元素实际表征的含义。37.进一步地,所述接收基于所述设置页面配置的相关信息包括:38.接收由管理平台的用户和/或代表用户在管理平台中配置的一方上传的预设匹配规则和/或预设信息生成字典。39.进一步地,将配置好的相关信息发送至边缘节点中,包括:40.设置用于同步所述管理平台中相关信息的配置管理系统,通过所述配置管理系统将配置好的相关信息发送至边缘节点中。41.本技术实施例还提供了一种反爬虫的系统,包括管理平台、边缘节点以及源服务器,其中,42.所述管理平台用于为用户提供设置页面,接收基于所述设置页面配置的相关信息,将配置好的相关信息发送至边缘节点中;43.所述源服务器用于接收所述边缘节点转发来的用户访问请求,对所述用户访问请求进行响应,并将响应流量返回至所述边缘节点;44.所述边缘节点用于基于所述响应流量确定请求对象数据的目标元素,使用预设信息对所述目标元素进行替换,以使在爬虫访问时无法识别所述目标元素实际表征的含义。45.本技术实施例还提供了一种反爬虫的设备,所述设备包括:46.一个或多个处理器;以及47.存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行所述反爬虫的方法的操作。48.本技术实施例还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现所述反爬虫的方法。49.与现有技术相比,本技术实施例提供的一种反爬虫的方案中,管理平台可以展示设置页面,接收基于所述设置页面配置的相关信息,并将配置好的相关信息发送至边缘节点中,而边缘节点在接收到相关信息之后可以完成相应的配置,使得边缘节点可以接收基于用户访问请求返回的响应流量,并在判定需要对所述响应流量进行反爬虫处理时,对所述响应流量进行解析,得到请求对象数据的目标元素,而后使用预设信息对所述目标元素进行替换,以使在爬虫访问时无法识别所述目标元素实际表征的含义。由此,对于部署于边缘云网络的网站而言,可以由边缘节点提供统一的反爬虫防护功能,而不再需要各个网站针对自身来分别开发和维护,因此能够方便不同网站的管理方用户对部署于边缘云网络上的网站进行灵活的管控,降低升级维护的成本。附图说明50.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:51.图1为本技术实施例提供的一种反爬虫的方法的处理流程图;52.图2为本技术实施例中边缘节点对所述响应流量进行解析时的处理流程图;53.图3为本技术实施例中响应流量进行反爬虫处理后被正常访客获取时的效果示意图;54.图4为本技术实施例中响应流量进行反爬虫处理后被爬虫程序所获取时的效果示意图;55.图5为本技术实施例提供的另一种反爬虫的方法的处理流程图;56.图6为本技术实施例提供的一种反爬虫的系统的结构示意图;57.图7为采用本技术实施例提供的反爬虫方案在边缘云网络中实现反爬虫处理时的交互流程图;58.图8为本技术实施例中边缘节点进行字体替换的一种处理流程图;59.图9为本技术实施例中边缘节点生成字体库时的处理流程图;60.图10为本技术实施例提供的一种反爬虫的设备的结构示意图;61.附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式62.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。63.在本技术一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。64.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。65.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。66.目前市场上已有的反爬虫产品都是各个网站针对本身进行反爬虫功能的开发和使用。当需要将多个网站部署于边缘云网络上时,由于边缘云网络缺乏具有反爬虫功能的云防护产品,因此对于部署于边缘云网络的多个网站,也同样需要针对不同的网站单独开发和维护相应的反爬虫功能,由此将会导致反爬虫的方案管控不够灵活,出现升级维护成本较高的问题。67.针对上述存在的问题,本技术实施例提供了一种反爬虫的方法,在该方法可以应用于边缘云网络中,所述边缘云网络可以基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的云计算平台,以形成边缘位置的计算、网络、存储、安全、应用等能力全面的弹性云平台。该边缘云网络中可以包括多个边缘节点,且可以通过管理平台对边缘云节点进行配置。68.其中,管理平台可以展示设置页面,接收基于所述设置页面配置的相关信息,并将配置好的相关信息发送至边缘节点中,而边缘节点在接收到相关信息之后可以完成相应的配置,使得边缘节点可以接收基于用户访问请求返回的响应流量,并在判定需要对所述响应流量进行反爬虫处理时,对所述响应流量进行解析,得到请求对象数据的目标元素,而后使用预设信息对所述目标元素进行替换,以使在爬虫访问时无法识别所述目标元素实际表征的含义。由此,对于部署于边缘云网络的网站而言,可以由边缘节点提供统一的反爬虫防护功能,而不再需要各个网站针对自身来分别开发和维护,因此能够方便不同网站的管理方用户对部署于边缘云网络上的网站进行灵活的管控,降低升级维护的成本。69.图1示出了本技术实施例提供的一种反爬虫的方法的处理流程,该方法应用于边缘节点中,至少包括了以下的处理步骤:70.步骤s101,接收基于用户访问请求返回的响应流量。其中,用户访问请求为用户向部署于边缘云网络中的网站所发起的请求。当网站部署于边缘云网络中时,对于该网站的用户访问请求会发送至边缘云网络,并基于预设的调度规则被调度至相应的边缘节点进行处理。71.例如,在实际场景中,可以采用就近调度的规则,将用户访问请求调度至最近的边缘节点,此时边缘节点可以接收到用户访问请求,并可以将用户访问请求转发至网站对应的源服务器。而后,由源服务器对用户访问请求进行处理,获得对应于该用户访问请求的响应结果后,生成响应流量返回给边缘节点,此时边缘节点即收到基于用户访问请求返回的响应流量。在正常情况下,边缘节点会向发起请求的用户直接返回响应流量。72.而当发起请求的用户并非是网站的正常访客,而是爬取数据的爬虫时,为了避免数据内容被非法的爬虫所爬取,边缘节点可以通过后续的处理步骤对该响应流量进行反爬虫处理,以使在爬虫访问时无法识别响应流量中目标元素实际表征的含义。73.步骤s102,若判定需要对所述响应流量进行反爬虫处理,则对所述响应流量进行解析,得到请求对象数据的目标元素。74.边缘节点基于与响应流量相关的信息可以进行判断是否需要进行反爬虫处理,若判定需要对所述响应流量进行反爬虫处理,则边缘节点可以执行相应的反爬虫处理步骤。反之,若判定为需要对所述响应流量进行反爬虫处理,则边缘节点无需对该响应流量进行处理,将其返回给发起用户访问请求的用户即可。75.边缘节点在进行是否需要对响应流量反爬虫处理的判断时,可以基于响应流量本身和/或与其对应的用户访问请求。由此,在本技术的一些实施例中,判定需要对所述响应流量进行反爬虫处理时,判定方式可以包括:若所述用户访问请求符合预设匹配规则,则判定需要对所述响应流量进行反爬虫处理;和/或若所述响应流量符合预设匹配规则,则判定需要对所述响应流量进行反爬虫处理。因此,通过设定合理的预设匹配规则,即可通过用户访问请求和/或响应流量准确地判定是否需要进行反爬虫处理,从而避免对正常访客的流量进行处理,造成计算资源的浪费,提升处理效率。76.其中,为了更加准确的实现判断,所述预设匹配规则可以设定为:所述用户访问请求指示的对象类型属于爬虫程序可执行的目标对象类型;或者,所述用户访问请求指示的对象存在可被爬虫爬取的目标元素;或者,所述用户访问请求存在表征需要对所述响应流量进行反爬虫处理的标签标记。77.对于所述用户访问请求指示的对象类型属于爬虫程序可执行的目标对象类型这一预设匹配规则,其中,爬虫程序可执行的目标对象类型可以根据实际应用场景中的反爬目的设置,例如在某一实际应用场景中,本技术实施例的方案需要防止爬虫程序爬取文本数据,则可以设定爬虫程序可执行的目标对象为文本数据类型。由此,边缘节点在获取到用户访问请求时,可以基于用户访问请求的具体内容,解析出该用户访问请求指示的对象类型,并与爬虫程序可执行的目标对象类型进行比较,从而判断所述用户访问请求指示的对象类型是否属于爬虫程序可执行的目标对象类型。若所述用户访问请求指示的对象类型属于爬虫程序可执行的目标对象类型,则表示用户访问请求符合预设匹配规则,由此可以判定需要对所述响应流量进行反爬虫处理。78.在实际场景中,对于符合该条预设匹配规则的情况,可以为对应的用户访问请求添加上标签标记,表示该需要对该用户访问请求对应的响应流量进行反爬虫处理,由此通过所述标签标记达到类似黑名单过滤的作用,即携带有标签标记,则需要进行反爬虫处理,未携带标签标记,则不需要进行反爬虫处理。例如,在字体替换的反爬虫场景下,若某一用户访问请求指示的对象类型属于文本数据类型,则表示符合该预设匹配条件,此时可以为用户访问请求添加上标签标记,而所有携带有标记标签的用户访问请求都可以认为是黑名单中的请求,需要对其返回的响应流量进行反爬虫处理。79.或者,本技术实施例的方案中也可以采用相反的方式,对于不符合该条预设匹配规则的情况,为对应的用户访问请求添加上标签标记,表示不需要对该用户访问请求对应的响应流量进行反爬虫处理,由此通过所述标签标记达到类似白名单过滤的作用,即携带有标签标记,则不需要进行反爬虫处理,而未携带标签标记的,则需要进行反爬虫处理。例如,同样在字体替换的反爬虫场景下,若某一用户访问请求指示的对象类型属于图片数据类型,则表示不符合该预设匹配条件,此时可以为用户访问请求添加上标签标记,而所有携带有标记标签的用户访问请求都可以认为是白名单中的请求,在获取其返回的响应流量时可以不进行反爬虫处理,而是直接转发给请求方。80.对于所述用户访问请求指示的对象存在可被爬虫爬取的目标元素这一预设匹配规则,其中,可被爬虫程序爬取的目标元素可以根据实际应用场景设定,例如在某一实际应用场景中可被爬虫程序爬取的目标元素为页面中的dom(documentobjectmodel,文档对象模型)结构对象,则可以将该dom结构对象设定为目标元素,当边缘节点确定用户访问请求指示的对象时,可以根据判断该对象中是否存在dom结构对象,若存在则表示符合预设匹配规则,由此可以判定需要对所述响应流量进行反爬虫处理。类似地,该条预设匹配规则的判定结果也同样可以通过是否打上标签标记的形式来表示,并利用标签标记实现白名单或黑名单形式的结果过滤。例如,当用户访问请求指示的对象中存在dom结构对象时,表示符合该预设匹配条件,此时可以为用户访问请求添加上标签标记,而所有携带有标记标签的用户访问请求都可以认为是黑名单中的请求,需要对其返回的响应流量进行反爬虫处理。反之,也可以为指示的对象中不存在dom结构对象的用户访问请求添加上标签标记,在后续处理时,可以将其认为是白名单中的请求,在获取其返回的响应流量时可以不进行反爬虫处理,而是直接转发给请求方。81.在此,本领域技术人员应当理解上述标记预设匹配条件匹配结果的具体内容仅为举例,现有或今后出现的基于类似原理的其它形式如果能够适用于本技术,也应该包含在本技术的保护范围内,并以引用的形式包含于此。82.对于所述用户访问请求存在表征需要对所述响应流量进行反爬虫处理的标签标记这一预设匹配规则,其中,标签标记用于表征需要对所述响应流量进行反爬虫处理,可以根据用户访问请求的特征采用规则过滤的方式生成。例如,可以根据用户访问请求对应的url(uniformresourcelocator,统一资源定位符)、ip(internetprotocol,网际互联协议)地址、user-agent(用户代理)、地理位置等信息,与基于这些信息设定的过滤规则进行比较,若符合过滤规则,则为用户访问请求添加标签标记。由此,边缘节点可以基于所述用户访问请求是否存在表征需要对所述响应流量进行反爬虫处理的标签标记,来判断是否符合预设匹配规则。83.在本技术的一些实施例中,边缘节点在对所述响应流量进行解析,得到请求对象数据的目标元素时,可以采用图2所示的处理步骤,包括:84.步骤s201,对所述响应流量进行解析,得到解析后的请求对象数据。其中,响应流量中包括了用户访问请求所需要的所有数据内容,而爬虫程序所爬取的是其中一部分数据对象,因此可以对响应流量进行解析,将其中包含的数据内容解析为不同的请求数据对象,以便于后续进行准确的定位,筛选出需要进行防护的数据对象,从而提高处理效率,避免不必要的反爬虫处理。例如,若响应流量为一个html(hypertextmarkuplanguage,超文本标记语言)页面时,可以通过解析该html页面获得其中包含的各类请求数据对象,如对应于文本数据的dom结构对象,对应与图片数据的png(portablenetworkgraphics,便携式网络图形)对象、jpg(jointphotographicexpertsgroup,联合图像专家组)对象等。85.步骤s202,根据预设定位规则,对所述解析后的请求对象数据进行定位,得到定位数据。在实际场景中,所述预设定位规则可以是自定义的规则,也可以是边缘节点上配置的默认规则,在针对数字、汉字、英文等常见的文本元素进行定位时,可以采用如解析dom结构、使用xpath(xmlpath,可扩展标记语言路径)语法、字符串搜索等方式的预设定位规则,来实现上述文本元素的定位,获取定位数据。86.步骤s203,根据所述定位数据,确定所述请求对象数据的目标元素。以字体替换的反爬虫处理场景为例,在确定所述请求对象数据的目标元素后,即表示边缘节点已精准地确定了响应流量中需要进行字体替换的目标文字。例如,本技术实施例提供的反爬虫方案需要对应爬取用户评分数据的爬虫程序,则可以通过设定合理的预设匹配规则和预设定位规则,使得最终确定的请求对象数据的目标元素为响应流量中的所有数字文本。由此,通过上述的方式可以更加准确地从响应流量中确定需要进行字体替换的目标元素,提升方案的反爬效果。87.步骤s103,使用预设信息对所述目标元素进行替换,以使在爬虫访问时无法识别所述目标元素实际表征的含义。88.其中,所述预设信息为基于新的编码规则生成的目标元素的编码信息。在实际场景中,任意的目标元素在通过网络传输时,发送方都会以按照预设的编码规则进行编码后,以编码信息的形式传递,而接收方在获取到编码信息后,则以对应的解码规则对编码信息进行解码,从而识别出所述目标元素实际表征的含义并进行显示。89.例如,在正常情况下“9”和“7”这两个数字采用通用编码规则编码后所获得的编码信息为“asx#02”和“asi#12”,本技术实施例的方案中,采用了基于新的编码规则生成的编码信息,如“&#xe624”和“&#xe9c7”分别作为“9”和“7”这两个目标元素的预设信息。90.对于访问网页的正常访客和爬虫程序,两者的区别在于:正常访客并不关心目标元素的编码规则,由于浏览器在呈现网页时,可以同时获得预设信息的解码规则,因此可以根据对应的解码规则对预设信息进行解码,从而呈现出正常的显示效果。以图3所示的页面为例,用户评分310可以正常显示为9.7,并不影响正常访客的浏览。而爬虫程序在获取到编码信息后,并不使用浏览器对网页进行呈现,而是直接基于通用编码规则所对应的解码规则对预设信息进行解码,从而获取需要爬取的信息。由于爬虫程序没有预设信息的解码规则,无法正确地对“&#xe624”和“&#xe9c7”这两项预设信息进行解码,因此只能够获得如图4所示的乱码信息410,而无法识别出目标元素实际表征的含义。91.由此,对于部署于边缘云网络的网站而言,可以由边缘节点提供统一的反爬虫防护功能,而不再需要各个网站针对自身来分别开发和维护,因此能够方便不同网站的管理方用户对部署于边缘云网络上的网站进行灵活的管控,降低升级维护的成本。92.在本技术的一些实施例中,边缘节点在使用预设信息对所述目标元素进行替换时,可以先使用预设信息生成字典对替换元素进行编码,得到所述预设信息。其中,所述预设信息生成字典中包括对替换元素进行编码的新的编码信息,所述替换元素为实际表征含义与目标元素相同、但编解码规则不同的元素,例如前述编码信息为“&#xe624”的数字9和编码信息为“asx#02”的数字9。在得到所述预设信息后,即可使用所述预设信息对所述目标元素进行替换,使得响应流量中的目标元素以预设信息的形式存储于传输的数据包中。由于所述预设信息生成字典可以预先生成,在进行反爬虫处理之前,进行配置的用户可以直接获取已经预先生成预设信息生成字典,由此可以节约配置时间,降低方案部署的难度。93.此外,在本技术的一些实施例中,可以预先设置多组替换元素以及预设信息生成字典,即替换元素与预设信息生成字典之间可以设置为一对多或多对多的关系,由此,即使爬虫程序以一定的方式获取到了其中一组替换元素以及预设信息生成字典,边缘节点仅需要在进行目标元素替换时采用另一组,即可避免反爬功能失效,从而可以进一步提升反爬的可靠性。94.由此,边缘节点还可以根据所述替换元素以及预设信息生成字典,生成所述替换元素与预设信息之间的映射关系,并且在使用预设信息对所述目标元素进行替换时,可以先选定本次使用的替换元素,然后根据所述映射关系,确定本次使用的预设信息,并使用本次确定的所述预设信息对所述目标元素进行替换。其中,边缘节点在选定本次使用的替换元素以及预设信息生成字典时,可以采用随机的方式或者轮流使用的方式,以避免长期重复使用同一组替换元素以及预设信息生成字典,导致反爬虫处理被破解而失效的情况发生。95.在本技术的一些实施例中,边缘节点可以在接收基于用户访问请求返回的响应流量之前,接收由管理平台的用户和/或代表用户在管理平台中配置的一方上传的预设匹配规则和/或预设信息生成字典。管理平台的用户以及代表用户在管理平台中配置的一方均是指使用管理平台具体反爬功能进行配置的人员,其中,代表用户在管理平台中配置的一方为获得管理平台的用户授权后获得对相关网站反爬功能配置权限的人员。管理平台的用户和/或代表用户在管理平台中配置的一方可以通过管理平台上传预设匹配规则和/或预设信息生成字典,从而便捷地实现对反爬功能的高效管理。在实际场景中,除了上述预设匹配规则、预设信息生成字典之外,管理平台也可以用于配置与标签标记相关的过滤规则等其它信息,以及获取是否开启反爬虫功能的开关指令等。96.其中,当管理平台由管理平台的用户和/或代表用户在管理平台中配置的一方获取到开启反爬虫功能的指令时,管理节点会向边缘节点发送反爬虫功能开启信息。由此,边缘节点可以在接收到来自管理平台的反爬虫功能开启信息时,确定为响应流量开启反爬虫服务,从而实现前述反爬虫的方法。97.图5示出了本技术实施例提供的另一种反爬虫的方法,该方法应用于管理平台中,至少包括了以下的处理步骤:98.步骤s501,展示设置页面。通过该设置页面,管理平台的用户和/或代表用户在管理平台中配置的一方可以配置反爬虫功能的各项相关信息,如预设匹配规则、预设信息生成字典等。为了便于用户操作,所述设置界面可以是一种能够用于实现人机交互的图形用户界面(graphicaluserinterface,gui),该图形用户界面中可以包括用于输入相关参数的设置区域,管理平台的用户和/或代表用户在管理平台中配置的一方可以通过终端设备进入该管理平台提供的图形用户界面中,并在图形用户界面的设置区域中输入相关参数。99.步骤s502,接收基于所述设置页面配置的相关信息。当管理平台的用户和/或代表用户在管理平台中配置的一方在设置页面中配置了相关信息之后,管理平台即可接收到基于所述设置页面配置的相关信息。100.步骤s503,将配置好的相关信息发送至边缘节点中,以使所述边缘节点基于用户访问请求返回的响应流量确定请求对象数据的目标元素,使用预设信息对所述目标元素进行替换,以使在爬虫访问时无法识别所述目标元素实际表征的含义,从而实现反爬虫功能。101.其中,管理平台在接收基于所述设置页面配置的相关信息包括时,可以接收由管理平台的用户和/或代表用户在管理平台中配置的一方上传的预设匹配规则和/或预设信息生成字典。102.在实际场景中,管理平台也可以基于设置页面或其它方式获取管理平台的用户和/或代表用户在管理平台中配置的一方所输入的关于是否开启反爬虫功能的开关指令。若获取到开启反爬虫功能的指令,则管理平台可以向边缘节点发送反爬虫功能开启信息,使得边缘节点可以对需要进行反爬虫处理的响应流量进行反爬虫处理。反之,若获取到关闭反爬虫功能的指令,则管理平台可以向边缘节点发送反爬虫功能关闭信息,使得边缘节点可以停止对响应流量进行反爬虫处理。103.此外,由于边缘云网络中一般会存在数量较多的边缘节点,管理平台在将配置好的相关信息发送至边缘节点时,可能会需要同时向多个不同的边缘节点进行发送。为了同步发送配置好的相关信息,提升发送相关信息时的效率,管理平台可以设置用于同步所述管理平台中相关信息的配置管理系统,通过所述配置管理系统将配置好的相关信息发送至边缘节点中。104.本技术实施例还提供了一种反爬虫的系统,该系统的结构如图6所示,至少包括了管理平台610、边缘节点620和源服务器630。其中,所述管理平台610用于为用户提供设置页面,接收基于所述设置页面配置的相关信息,将配置好的相关信息发送至边缘节点中。所述源服务器630用于接收所述边缘节点转发来的用户访问请求,对所述用户访问请求进行响应,并将响应流量返回至所述边缘节点。所述边缘节点620用于基于所述响应流量确定请求对象数据的目标元素,使用预设信息对所述目标元素进行替换,以使在爬虫访问时无法识别所述目标元素实际表征的含义。105.图7示出了一种采用本技术实施例提供的反爬虫方案在边缘云网络中实现反爬虫处理时的交互流程,其中涉及管理平台710、边缘节点720、源服务器730、配置用户740、正常访客750和爬虫程序760。其中,管理平台710用于配置反爬虫处理时的相关信息,所述边缘节点720用于执行反爬虫处理,其中,字体反爬检查引擎721用于进行规则匹配,判断是否需要对响应流量进行反爬虫处理,字体替换模块722用于对响应流量中的目标元素进行字体替换,从而实现反爬虫处理,字体生成模块730用于生成在字体替换时需要使用的字体库。所述源服务器730用于对用户访问请求进行处理,并生成响应流量。配置用户740可以通过其使用的终端设备访问管理平台提供的设置页面,并在设置页面中输入相关信息,正常访客750可以通过其使用的终端设备的浏览器向边缘节点720发送用户访问请求,获取响应流量并在浏览器中显示。爬虫程序760也可以向边缘节点720发送用户访问请求,获取响应流量并从访问流量中解析出需要爬取的数据。上述交互流程可以至少包括以下的具体交互步骤:106.步骤s701,配置用户在将网站接入边缘云网络后,该网站的对应的源服务器会收到边缘节点的反爬虫保护,此时配置用户可以进入管理平台提供的设置页面,配置关于反爬策略的相关信息。其中,所述反爬策略用于生成本技术实施例中的预设匹配规则,从而实现对响应流量是否需要进行反爬虫处理的判断。管理平台也可以提供开关选项,该开关选项可以让配置用户控制是否开启边缘节点上已配置好的反爬虫功能。107.此外,管理平台上也可以向配置用户提供更精细的配置管理选项,例如,可提供过滤规则的配置功能,可以方便配置用户对反爬虫处理的触发条件进行更友好、更精细管控,提供包含但不限于基于url、ip、user-agent、地理位置等维度条件,控制是否对响应流量进行反爬虫处理。还如,配置管理相关也可以提供目标元素的定位的配置功能,可以方便配置用户更精准地管控对页面上哪些目标元素进行替换,包括但不限于基于数字类型、常见汉字集等类型选定。同时,也可以包含但不限于基于配置xpath语法规则定位、配置字符串匹配定位等类似的页面元素定位方式或算法等。此外,还可以提供字体风格的配置功能,包括但不限于诸如宋体、正楷等多种不同字体风格的配置。108.步骤s702,管理平台根据配置用户配置的相关信息,对边缘节点进行配置管理,即向配置好的相关信息发送给边缘节点,使得边缘节点能够在特定的情况下对响应流量进行反爬虫处理。在实际场景中,在将相关信息下发给边缘节点时,可以配置为通过配置管理系统进行同步下发。109.步骤s703,当正常访客或爬虫访问源服务器的网站时,其对应的用户访问请求会达到边缘节点。110.步骤s704,当边缘节点在完成反爬虫功能的配置,并开启反爬虫功能后,边缘节点会根据用户访问请求的特征进行一次预判处理,此时不会执行字体替换的反爬虫处理,会先将用户访问请求转发到源服务器。进行预判处理时,会根据针对用户访问请求的预设匹配规则,先进行一次匹配,并根据匹配结果以打标签标记的方式,以标识当前的用户访问请求是否需要进行反爬虫处理。其中,预判处理时使用的预设匹配规则的具体内容可以根据实际场景设置。111.步骤s705,当源服务器在获取到用户访问请求后,会对其进行处理,并向边缘节点返回响应流量。其中,若用户访问请求上携带有标签标记,则其对应的响应流量也会携带该标签标记。112.步骤s706,边缘节点在收到响应流量后,会根据针对响应流量的预设匹配规则,再次进行匹配,并根据匹配结果选择对响应流量进行反爬虫处理后返回给请求方或直接返回给请求方。113.边缘节点对响应流量的处理过程如下:114.首先判定是否存在标签标记。若不存在标签标记,则继续判断响应流量是否是html页面类型,若是html页面类型则对其进行解析,获取请求对象数据。此处,是在基于标签标记进行判断的基础上,再次对响应流量进行html页面类型进行的二次判断,其目的在于实现对需要反爬虫处理的数据进行二次过滤。在实际场景中,由于一些原因,如开发者在进行代码开发时可能存在一些不规范的情况,因此当采用常规的判断标准对用户访问请求中的特征进行判断,并以此确定请求对象并非是html页面时,其实际返回的响应流量中也可能包括html页面,因此此处对响应流量进行二次过滤,可以提升方案可靠性,避免遗漏需要进行反爬处理的html页面。115.接着,如果配置了自定义的过滤规则,则进行过滤规则的匹配,符合条件的,继续进行后续的判断。若未配置自定义的过滤规则,则跳过过滤规则的匹配,直接进入后续的判断。之后,如果配置了目标元素的定位规则,则基于配置的定位规则进行定位,确定需要进行字体替换的目标元素。若未配置,则使用默认的元素定位方式,针对数字、常见汉字进行元素定位。116.如果在响应流量的html页面中定位到需要替换的目标元素,则随机选定一套字体库,该字体库中包括了预设信息、预设信息生成字典以及两者之间的映射关系。由此,可以针对定位到的文字、数字等目标元素进行字体替换,使得预设信息能够替换目标元素。此外,可以在返回响应流量中插入字体库的信息,并插入字体的cssclass属性,然后执行后续的步骤s707。其中,在插入字体库的信息时,不限于插入自定义的字体库链接,或直接插入base64等编码方式的字体库等。117.此外,边缘节点根据针对响应流量的预设匹配规则进行匹配时,若响应流量不存在标签标记或不是html页面类型,则表示不需要进行反爬虫处理,此时,直接执行后续的步骤s707。118.步骤s707将处理好的响应流量转发给请求方,即正常访客或爬虫程序。由于在响应流量插入了字体库的信息和字符的cssclass属性,使得正常访客的浏览器在收到响应流量后,可以自动调用这些信息,对html页面进行解码和显示,从而能够呈现出目标元素实际表征的含义。而对于爬虫程序,由于其并不会通过浏览器解码并显示响应流量对应的页面,因此无法获取响应流量中插入的字体库的信息和字符的cssclass属性,导致其无法正确解析替换目标元素的预设信息,使得爬虫程序实际获取到的目标元素会表示为乱码,从而无法爬取正确的数据,实现反爬虫的效果。119.图8示出了本技术实施例中边缘节点进行字体替换的一种实际处理流程,包括:120.步骤s801,接收响应流量。121.步骤s802,判断响应流量是否为html页面,若是则执行步骤s803,若否,则执行步骤s814。122.步骤s803,判断是否配置了自定义的过滤规则,若是则执行步骤s804,若否,则执行步骤s805。123.步骤s804,判断是否与过滤规则匹配,若是则执行步骤s805,若否,则执行步骤s814。124.步骤s805,判断是否配置了自定义的元素定位规则,若是则执行步骤s806,若否,则执行步骤s807。125.步骤s806,使用自定义的元素定位规则定位数据,确定响应流量中的目标元素,然后执行步骤s808。126.步骤s807,使用默认的元素定位规则定位数据,确定响应流量中的目标元素,然后执行步骤s808。127.步骤s808,判断是否成功定位到数据,若步骤s806或s807中成功确定了响应流量中的目标元素,则此时的判断结果为是,继续执行步骤s809,否则,此时的判断结果为否,执行步骤s814。128.步骤s809,随机选取一套字体库。所述字体库可以直接使用已有的字体库,也可以由边缘节点在进行字体替换之前生成。129.步骤s810,生成cssclass属性并填充字体库链接。130.步骤s811,将字体库链接插入到响应流量的html页面中。131.步骤s812,对目标元素的进行数据替换。132.步骤s813,在响应流量的html页面中添加cssclass属性。133.步骤s814,发送响应流量。134.图9示出了本技术实施例中边缘节点生成字体库时的实际处理流程,包括以下的处理步骤:135.步骤s901,判断是否需要创建空白字体。其中,所述空白字体是指非已有字体的自定义字体,例如用户原创的字体、或者让是对已有字体进行变形后形成的新的字体等。若是则执行步骤s903,若否,则执行步骤s902。136.步骤s902,基于已有的字体库对字体进行解析,获取字体对象,然后执行步骤s904。137.步骤s903,生成空白字体的字体对象,然后执行步骤s904。138.步骤s904,将字体对象转换为svg(scalablevectorgraphics,可缩放矢量图形)对象。139.步骤s905,在svg对象中选定需要进行替换的字符集,如数字字符、常用汉字字符等。140.步骤s906,通过算法随机生成字符集中各个字符对应的编码信息。141.步骤s907,通过算法随机调整字形的坐标数据。142.步骤s908,存储字符集的编码信息、坐标数据等,供字体替换时使用。143.此外,本技术实施例还提供了一种反爬虫的设备的结构如图10所示,包括一个或多个处理器1010以及存储有计算机可读指令的存储器1020,所述计算机可读指令在被执行时使所述处理器执行所述反爬虫的方法。144.本技术实施例中的方法和/或实施例可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在该计算机程序被处理单元执行时,执行本技术的方法中限定的上述功能。145.需要说明的是,本技术所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。146.而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。147.可以以一种或多种程序设计语言或其组合来编写用于执行本技术的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。148.附图中的流程图或框图示出了按照本技术各种实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的针对硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。149.作为另一方面,本技术实施例还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个计算机可读指令,所述计算机可读指令可被处理器执行以实现前述本技术的多个实施例的方法和/或技术方案的步骤。150.此外,本技术实施例还提供了一种计算机程序,所述计算机程序存储于计算机设备,使得计算机设备执行所述反爬虫的方法。151.需要注意的是,本技术可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本技术的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本技术的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本技术的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。152.对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其他的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。当前第1页12当前第1页12
技术特征:
1.一种反爬虫的方法,其特征在于,应用于边缘节点,所述方法包括:接收基于用户访问请求返回的响应流量;若判定需要对所述响应流量进行反爬虫处理,则对所述响应流量进行解析,得到请求对象数据的目标元素;使用预设信息对所述目标元素进行替换,以使在爬虫访问时无法识别所述目标元素实际表征的含义。2.根据权利要求1所述的方法,其特征在于,所述判定需要对所述响应流量进行反爬虫处理包括:若所述用户访问请求符合预设匹配规则,则判定需要对所述响应流量进行反爬虫处理;和/或,若所述响应流量符合预设匹配规则,则判定需要对所述响应流量进行反爬虫处理。3.根据权利要求2所述的方法,其特征在于,所述预设匹配规则包括以下至少之一:所述用户访问请求指示的对象类型属于爬虫程序可执行的目标对象类型;或者,所述用户访问请求指示的对象存在可被爬虫爬取的目标元素;或者,所述用户访问请求存在表征需要对所述响应流量进行反爬虫处理的标签标记。4.根据权利要求1所述的方法,其特征在于,所述对所述响应流量进行解析,得到请求对象数据的目标元素包括:对所述响应流量进行解析,得到解析后的请求对象数据;根据预设定位规则,对所述解析后的请求对象数据进行定位,得到定位数据;根据所述定位数据,确定所述请求对象数据的目标元素。5.根据权利要求1所述的方法,其特征在于,在接收基于用户访问请求返回的响应流量之前还包括:接收由管理平台的用户和/或代表用户在管理平台中配置的一方上传的预设匹配规则和/或预设信息生成字典。6.根据权利要求1所述的方法,其特征在于,使用预设信息对所述目标元素进行替换包括:使用预设信息生成字典对替换元素进行编码,得到所述预设信息;使用所述预设信息对所述目标元素进行替换。7.根据权利要求6所述的方法,其特征在于,还包括:根据所述替换元素以及预设信息生成字典,生成所述替换元素与预设信息之间的映射关系;所述使用预设信息对所述目标元素进行替换,包括:选定本次使用的替换元素;根据所述映射关系,确定本次使用的预设信息;使用本次确定的所述预设信息对所述目标元素进行替换。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:在接收到来自管理平台的反爬虫功能开启信息时,确定为响应流量开启反爬虫服务。9.一种反爬虫的方法,其特征在于,应用于管理平台,所述方法包括:展示设置页面;
接收基于所述设置页面配置的相关信息;将配置好的相关信息发送至边缘节点中,以使所述边缘节点基于用户访问请求返回的响应流量确定请求对象数据的目标元素,使用预设信息对所述目标元素进行替换,以使在爬虫访问时无法识别所述目标元素实际表征的含义。10.根据权利要求9所述的方法,其特征在于,所述接收基于所述设置页面配置的相关信息包括:接收由管理平台的用户和/或代表用户在管理平台中配置的一方上传的预设匹配规则和/或预设信息生成字典。11.根据权利要求9所述的方法,其特征在于,将配置好的相关信息发送至边缘节点中,包括:设置用于同步所述管理平台中相关信息的配置管理系统,通过所述配置管理系统将配置好的相关信息发送至边缘节点中。12.一种反爬虫的系统,其特征在于,包括管理平台、边缘节点以及源服务器,其中,所述管理平台用于为用户提供设置页面,接收基于所述设置页面配置的相关信息,将配置好的相关信息发送至边缘节点中;所述源服务器用于接收所述边缘节点转发来的用户访问请求,对所述用户访问请求进行响应,并将响应流量返回至所述边缘节点;所述边缘节点用于基于所述响应流量确定请求对象数据的目标元素,使用预设信息对所述目标元素进行替换,以使在爬虫访问时无法识别所述目标元素实际表征的含义。13.一种反爬虫的设备,其特征在于,所述设备包括:一个或多个处理器;以及存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如权利要求1至11中任一项所述方法的操作。14.一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如权利要求1至11中任一项所述的方法。

技术总结
本申请提供了一种反爬虫的方法、系统、设备及存储介质,管理平台可以展示设置页面,接收基于设置页面配置的相关信息,并将相关信息发送至边缘节点中,而边缘节点在接收到相关信息后可以完成配置,从而接收基于用户访问请求返回的响应流量,并在判定需要对响应流量进行反爬虫处理时,对响应流量进行解析,得到请求对象数据的目标元素,而后使用预设信息对目标元素进行替换。由此,对于部署于边缘云网络的网站而言,可以由边缘节点提供统一的反爬虫防护功能,而不再需要各个网站针对自身来分别开发和维护,因此能够方便不同网站的管理方用户对部署于边缘云网络上的网站进行灵活的管控,降低升级维护的成本。降低升级维护的成本。降低升级维护的成本。


技术研发人员:高力 胡金涌
受保护的技术使用者:上海云盾信息技术有限公司
技术研发日:2021.12.31
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐