本公开涉及计算机的,尤其涉及文本数据保护方法和装置、计算设备以及存储介质。
背景技术:
1、随着计算机技术的不断发展,访问网页逐渐成为人们生活中获取信息的一种重要途径。同时,在这种环境下,网络上也充斥着各种爬虫软件来爬取网页中的重要文本数据,由此可见,网页上的文本数据保护也愈发重要。反爬虫是对网络爬虫的反制,它通过一些反制策略来阻碍或干扰爬虫的正常爬行,从而保护网站的资源不让别人抓取,防止数据泄露等问题。当前主要采用基于爬行的反爬虫策略,其思路主要是在爬虫的爬行中设置爬行障碍,以阻止或扰乱爬虫获取真实数据。以采用图片伪装这样的反爬虫策略为例,其将带有文字的图片与正常文字混合在一起,使得爬虫无法轻易拿到完整的文字内容。然而,随着ocr技术发展,识别并提取图像中的文字已非常容易,该反爬策略不仅容易破解,也因为破解过程无法进行有效的检测和拦截,导致爬虫不易被捕获发现。
技术实现思路
1、有鉴于此,本公开提供了文本数据保护方法和装置、计算设备以及存储介质,期望克服上面提到的部分或全部缺陷以及其它可能的缺陷。
2、根据本公开的第一方面,提供了一种文本数据保护方法。所述方法首先获取反爬虫机制。然后,所述方法执行所述反爬虫机制,以实施如下步骤:获取超文本标记语言文件中的要保护处理的至少部分文本数据以及保护处理后的文本数据的宿主元素;确定用于创建影子文档对象模型的应用编程接口方法的代码是否为原生代码;响应于用于创建影子文档对象模型的应用编程接口方法的代码为原生代码,利用所述应用编程接口方法将所述超文本标记语言文件中的要保护处理的至少部分文本数据创建成封闭模式的影子文档对象模型,并将所述封闭模式的影子文档对象模型挂载到用户指定的宿主元素上。最后所述方法对所述宿主元素和影子文档对象模型进行渲染。
3、在一些实施例中,所述获取反爬虫机制,包括:发送访问目标网页的请求;获取针对所述目标网页的超文本标记语言文件以及相应的javascript文件,其中所述javascript文件包括反爬虫机制。
4、在一些实施例中,所述javascript文件还包括超文本标记语言文件中的要保护处理的至少部分文本数据以及保护处理后的文本数据的宿主元素;以及其中,所述获取超文本标记语言文件中的要保护处理的至少部分文本数据以及保护处理后的文本数据的宿主元素,包括:从所述javascript文件获取超文本标记语言文件中的要保护处理的至少部分文本数据以及保护处理后的文本数据的宿主元素。
5、在一些实施例中,所述方法还包括:响应于用于创建影子文档对象模型的应用编程接口方法的代码不是原生代码,收集当前浏览器的身份信息和宿主元素信息。
6、在一些实施例中,所述确定用于创建影子文档对象模型的应用编程接口方法的代码是否为原生代码,包括:将用于创建影子文档对象模型的应用编程接口方法的代码解析为字符串,以得到解析后的内容;响应于解析后的内容与原生代码的内容相同,则确定用于创建影子文档对象模型的应用编程接口方法的代码为原生代码;响应于解析后的内容与原生代码的内容不同,则确定用于创建影子文档对象模型的应用编程接口方法的代码不是原生代码。
7、在一些实施例中,将用于创建影子文档对象模型的应用编程接口方法的代码解析为字符串,以得到解析后的内容,包括:获取所述宿主元素创建影子文档对象模型的应用编程接口方法;检验针对所述应用编程接口方法的解析方法是否被篡改;响应于所述解析方法没有被篡改,则利用所述解析方法将用于创建影子文档对象模型的应用编程接口方法的代码解析为字符串,以得到解析后的内容。
8、在一些实施例中,所述方法还包括:根据对所述宿主元素和影子文档对象模型进行渲染得到的渲染结果,确定所述影子文档对象模型的宿主元素、所述影子文档对象模型的模式、所述影子文档对象模型的内容;响应于所述影子文档对象模型的宿主元素不是所述要保护处理的文本数据的宿主元素、所述影子文档对象模型的模式不是封闭模式、或者所述影子文档对象模型的内容不是超文本标记语言文件中的要保护处理的所述至少部分文本数据,则删除所述渲染结果。
9、根据本公开的第二方面,提供了一种文本数据保护装置,包括获取模块、执行模块以及渲染模块。获取模块被配置成获取反爬虫机制。执行模块被配置成执行所述反爬虫机制,以实施如下步骤:获取超文本标记语言文件中的要保护处理的至少部分文本数据以及保护处理后的文本数据的宿主元素;确定用于创建影子文档对象模型的应用编程接口方法的代码是否为原生代码;响应于用于创建影子文档对象模型的应用编程接口方法的代码为原生代码,利用所述应用编程接口方法将所述超文本标记语言文件中的要保护处理的至少部分文本数据创建成封闭模式的影子文档对象模型,并将所述封闭模式的影子文档对象模型挂载到用户指定的宿主元素上。渲染模块被配置成对所述宿主元素和影子文档对象模型进行渲染。
10、根据本公开的第三方面,提供了一种计算设备,包括:存储器,其被配置成存储计算机可执行指令;处理器,其被配置成当所述计算机可执行指令被处理器执行时执行上面描述的任一方法。
11、根据本公开的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行上面描述的任一方法。
12、根据本公开的第五方面,提供了一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机可执行指令,计算机可执行指令在被执行时实现上面描述的任一方法。
13、在本公开要求保护的文本数据保护方法和装置中,首先获取反爬虫机制,然后执行模块获取超文本标记语言文件中的要保护处理的至少部分文本数据以及保护处理后的文本数据的宿主元素以作为反爬虫机制的输入,反爬虫机制在确定用于创建影子文档对象模型的应用编程接口方法的代码为原生代码时,利用所述应用编程接口方法将所述超文本标记语言文件中的要保护处理的至少部分文本数据创建成封闭模式的影子文档对象模型,并将所述封闭模式的影子文档对象模型挂载到用户指定的宿主元素上进行渲染。以这种方式,实时监测用于创建影子文档对象模型的应用编程接口方法的代码是否为原生代码,防止了外部爬虫程序对应用编程接口方法的篡改,增强了安全性;并且在用于创建影子文档对象模型的应用编程接口方法的代码为原生代码时,动态地将要保护处理的至少部分文本数据创建成封闭模式的影子文档对象模型,从而防止了爬虫获取真实文本数据;并将所述封闭模式的影子文档对象模型挂载到用户指定的宿主元素上进行渲染,以便在存在爬虫时准确获取爬虫准备破解的目标。
14、根据下文描述的实施例,本公开的这些和其它优点将变得清楚,并且参考下文描述的实施例来阐明本公开的这些和其它优点。
1.一种文本数据保护方法,包括:
2.根据权利要求1所述的方法,其中,所述获取反爬虫机制,包括:
3.根据权利要求2所述的方法,其中,所述javascript文件还包括超文本标记语言文件中的要保护处理的至少部分文本数据以及保护处理后的文本数据的宿主元素;以及其中,所述获取超文本标记语言文件中的要保护处理的至少部分文本数据以及保护处理后的文本数据的宿主元素,包括:
4.根据权利要求1所述的方法,还包括:
5.根据权利要求1所述的方法,其中,所述确定用于创建影子文档对象模型的应用编程接口方法的代码是否为原生代码,包括:
6.根据权利要求5所述的方法,其中,将用于创建影子文档对象模型的应用编程接口方法的代码解析为字符串,以得到解析后的内容,包括:
7.根据权利要求1所述的方法,还包括:
8.一种文本数据保护装置,包括:
9.一种计算设备,包括
10.一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如权利要求1-7中的任一项所述的方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机可执行指令,计算机可执行指令在被执行时实现根据权利要求1至7中任一项所述的方法。