CN109684584B - 一种浏览器内核的智能切换方法、装置、终端及存储介质 - Google Patents

一种浏览器内核的智能切换方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN109684584B
CN109684584B CN201811361985.5A CN201811361985A CN109684584B CN 109684584 B CN109684584 B CN 109684584B CN 201811361985 A CN201811361985 A CN 201811361985A CN 109684584 B CN109684584 B CN 109684584B
Authority
CN
China
Prior art keywords
built
list
tree
webpage data
generate
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
Application number
CN201811361985.5A
Other languages
English (en)
Other versions
CN109684584A (zh
Inventor
王溢
蒋红宇
胡伯良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Haitai Fangyuan High Technology Co Ltd
Original Assignee
Beijing Haitai Fangyuan High Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Haitai Fangyuan High Technology Co Ltd filed Critical Beijing Haitai Fangyuan High Technology Co Ltd
Priority to CN201811361985.5A priority Critical patent/CN109684584B/zh
Publication of CN109684584A publication Critical patent/CN109684584A/zh
Application granted granted Critical
Publication of CN109684584B publication Critical patent/CN109684584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种浏览器内核的智能切换方法、装置、终端和存储介质,该方法包括:将待测网页数据进行HTML解析,以生成文档对象模型DOM树;根据所述DOM树,获取所述待测网页数据对应的内置函数列表、内置样式列表和事件列表;根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核。本发明由于是对网页特征进行分析,不需要借助指示性META标签,能够准确的识别遗留型网站的适应性内核及其版本,从而可以智能的切换浏览器的内核,提高了内核切换的通用性。

Description

一种浏览器内核的智能切换方法、装置、终端及存储介质
技术领域
本发明涉及互联网技术领域,特别是涉及一种浏览器内核的智能切换方法、装置、终端及存储介质。
背景技术
当前,国内的主流浏览器产品,多数都采用双核的架构设计,如基于Webkit/blink内核用于常用网站的高速浏览,基于IE的内核用于兼容网银、旧版网站,以应对不同的用户需求。但是,很多网站只针对特定浏览器内核进行设计,如ie6、ie7,换一个浏览器内核会出现严重的兼容性问题。如果让代码兼容多套浏览器内核下的展现效果,需要网站工程师花费大量时间。
为了避免花费网站工程师的时间并减少兼容性问题,可以指导浏览器采用网站特定内核。目前,指导浏览器采用网站特定内核的方式是在网页中加入指示性META标签。指示性META标签可以分为两种,一种是针对IE的兼容模式标签,一种是针对360浏览器的内核控制标签:例如:<metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1",<metaname="renderer"content="webkit|ie-comp|ie-stand">。其中,IE的兼容模式标签定义了IE如何渲染网页的方式,IE浏览器支持文档兼容模式以影响网页的解释和显示方式,这些模式也称为文档模式,允许在最新标准和旧浏览器中做出选择,分为三种主要的模式:1)标准模式提供了最新标准的支持,比如HTML5,CSS3,SVG等,这是在访问新网站时推荐的方式;2)怪癖模式强调了标准模式之外的兼容性,主要支持早期IE的行为;3)几乎标准模式在支持最新标准的同时,也支持早期浏览器的图形渲染行为。内核控制Meta标签是网站开发者在自己的网站里增加的一个Meta标签,通知360浏览器这个网址应该用哪种内核渲染,那么360浏览器就会在读取到这个标签后,立即切换对应的内核,并将这个行为应用于这个二级域名下所有网址。
上述两种加入指示性META标签指导浏览器采用特定内核的方式,是针对特定浏览器的技术手段,由于目前存在大量的遗留型网站,在开发时并没有遵循上述两种开发规则,不适用上述两种方式来切换对应的浏览器内核。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种浏览器内核的智能切换方法、装置、终端及存储介质。
依据本发明的第一方面,提供了一种浏览器内核的智能切换方法,包括:
将待测网页数据进行HTML解析,以生成文档对象模型DOM树;
根据所述DOM树,获取所述待测网页数据对应的内置函数列表、内置样式列表和事件列表;
根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核。
可选的,所述根据所述DOM树,获取所述待测网页数据对应的内置函数列表、内置样式列表和事件列表,包括:
对所述DOM树中脚本结点中的JS脚本进行解析,以生成内置函数列表;
对所述DOM树中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成内置样式列表;
获取所述DOM树中所有结点中的事件类型,生成事件列表。
可选的,对所述DOM树中脚本结点中的JS脚本进行解析,以生成内置函数列表,包括:
对所述DOM树中脚本结点中的内嵌JS脚本进行解析,以生成第一JS抽象语法树集;
获取所述第一抽象语法树集中文档对象和窗口对象的函数调用关系,以生成第一内置函数列表;
对所述DOM树中的脚本结点中的外部JS脚本进行解析,以生成第二JS抽象语法树集;
获取所述第二抽象语法树集中的文档对象和窗口对象的函数调用关系,以生成第二内置函数列表;
合并所述第一内置函数列表和所述第二内置函数列表,以生成所述内置函数列表。
可选的,对所述DOM树中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成内置样式列表,包括:
对所述DOM树中的所有结点的样式属性中的内嵌CSS文本进行解析,以生成第一CSS规则语法树集;
获取所述第一CSS规则语法树集中的与浏览器内核相关的CSS属性信息,以生成第一内置样式列表;
对所述DOM树中的链接结点中外部CSS文本进行解析,以生成第二CSS规则语法树集;
获取所述第二CSS规则语法树集中与浏览器内核相关的CSS属性信息,以生成第二内置样式列表;
合并所述第一内置样式列表和所述第二内置样式列表,以生成所述内置样式列表。
可选的,所述根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核,包括:
通过预先生成的静态决策树,根据所述内置函数列表、内置样式列表和事件列表,对待测网页数据进行分类,得到待测网页数据在所属分类的第一概率;
在所述第一概率中最大的第一概率大于或等于设定阈值时,确定所述最大的第一概率对应的分类为所述待测网页数据对应的浏览器内核。
可选的,所述通过预先生成的静态决策树,对所述内置函数列表、内置样式列表和事件列表进行分类,得到所述待测网页数据对应的浏览器内核,还包括:
在所述第一概率中最大的第一概率小于所述设定阈值时,使用指定内核执行所述待测网页数据,获取浏览器的错误和日志记录;
根据所述错误和日志记录,确定所述待测网页数据对应指定内核的JS错误类型和CSS错误类型;
通过预先生成的动态决策树,根据所述待测网页数据对应指定内核的JS错误类型和CSS错误类型,对所述待测网页数据进行分类,得到待测网页数据在所属分类的第二概率;
确定所述第二概率最大的分类为所述待测网页数据对应的浏览器内核。
可选的,还包括:
通过指定内核分别执行网页数据集中的网页数据样本,并获取在执行所述网页数据样本时浏览器的错误和日志记录;
根据在执行所述网页数据样本时浏览器的错误和日志记录,确定所述网页数据样本对应指定内核的JS错误类型和CSS错误类型;
根据所述网页数据样本对应指定内核的JS错误类型和CSS错误类型,通过决策树算法,生成动态决策树。
可选的,还包括:
获取网页数据集中的网页数据样本对应的内置函数列表、内置样式列表和事件列表;
将所述网页数据样本对应的内置函数列表以指定内核对应的函数为特征进行分类,并根据决策树算法,生成第一分类树;
基于所述第一分类树,将所述网页数据样本对应的内置样式列表以所述指定内核对应的样式为特征进行分类,并根据所述决策树算法,生成第二分类树;
基于所述第二分类树,将所述网页数据样本对应的事件列表以所述指定内核对应的事件类型为特征进行分类,并根据所述决策树算法,生成第三分类树;
对所述第三分类树执行悲观剪枝算法,以生成静态决策树。
依据本发明的第二方面,提供了一种浏览器内核的智能切换装置,包括:
DOM树生成模块,用于将待测网页数据进行HTML解析,以生成DOM树;
列表获取模块,用于根据所述DOM树,获取所述待测网页数据对应的内置函数列表、内置样式列表和事件列表;
内核确定模块,用于根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核。
可选的,所述列表获取模块包括:
JS脚本解析单元,用于对所述DOM树中脚本结点中的JS脚本进行解析,以生成内置函数列表;
CSS文本解析单元,用于对所述DOM树中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成内置样式列表;
事件类型获取单元,用于获取所述DOM树中所有结点中的事件类型,生成事件列表。
可选的,所述JS脚本解析单元具体用于:
对所述DOM树中脚本结点中的内嵌JS脚本进行解析,以生成第一JS抽象语法树集;
获取所述第一抽象语法树集中文档对象和窗口对象的函数调用关系,以生成第一内置函数列表;
对所述DOM树中的脚本结点中的外部JS脚本进行解析,以生成第二JS抽象语法树集;
获取所述第二抽象语法树集中的文档对象和窗口对象的函数调用关系,以生成第二内置函数列表;
合并所述第一内置函数列表和所述第二内置函数列表,以生成所述内置函数列表。
可选的,所述CSS文本解析单元具体用于:
对所述DOM树中的所有结点的样式属性中的内嵌CSS文本进行解析,以生成第一CSS规则语法树集;
获取所述第一CSS规则语法树集中的与浏览器内核相关的CSS属性信息,以生成第一内置样式列表;
对所述DOM树中的链接结点中外部CSS文本进行解析,以生成第二CSS规则语法树集;
获取所述第二CSS规则语法树集中与浏览器内核相关的CSS属性信息,以生成第二内置样式列表;
合并所述第一内置样式列表和所述第二内置样式列表,以生成所述内置样式列表。
可选的,所述内核确定模块包括:
第一分类单元,用于通过预先生成的静态决策树,根据所述内置函数列表、内置样式列表和事件列表,对待测网页数据进行分类,得到待测网页数据在所属分类的第一概率;
第一内核确定单元,用于在所述第一概率中最大的第一概率大于或等于设定阈值时,确定所述最大的第一概率对应的分类为所述待测网页数据对应的浏览器内核。
可选的,所述内核确定模块还包括:
记录获取单元,用于在所述第一概率中最大的第一概率小于所述设定阈值时,使用指定内核执行所述待测网页数据,获取浏览器的错误和日志记录;
错误类型确定单元,用于根据所述错误和日志记录,确定所述待测网页数据对应指定内核的JS错误类型和CSS错误类型;
第二分类单元,用于通过预先生成的动态决策树,根据所述待测网页数据对应指定内核的JS错误类型和CSS错误类型,对所述待测网页数据进行分类,得到待测网页数据在所属分类的第二概率;
第二内核确定单元,用于确定所述第二概率最大的分类为所述待测网页数据对应的浏览器内核。
可选的,还包括:
样本错误记录获取模块,用于通过指定内核分别执行网页数据集中的网页数据样本,并获取在执行所述网页数据样本时浏览器的错误和日志记录;
样本错误类型确定模块,用于根据在执行所述网页数据样本时浏览器的错误和日志记录,确定所述网页数据样本对应指定内核的JS错误类型和CSS错误类型;
动态决策树生成模块,用于根据所述网页数据样本对应指定内核的JS错误类型和CSS错误类型,通过决策树算法,生成动态决策树。
可选的,还包括:
样本列表获取模块,用于获取网页数据集中的网页数据样本对应的内置函数列表、内置样式列表和事件列表;
第一分类树生成模块,用于将所述网页数据样本对应的内置函数列表以指定内核对应的函数为特征进行分类,并根据决策树算法,生成第一分类树;
第二分类树生成模块,用于基于所述第一分类树,将所述网页数据样本对应的内置样式列表以所述指定内核对应的样式为特征进行分类,并根据所述决策树算法,生成第二分类树;
第三分类树生成模块,用于基于所述第二分类树,将所述网页数据样本对应的事件列表以所述指定内核对应的事件类型为特征进行分类,并根据所述决策树算法,生成第三分类树;
静态决策树生成模块,用于对所述第三分类树执行悲观剪枝算法,以生成静态决策树。
依据本发明的第三方面,提供了一种终端,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面中所述的浏览器内核的智能切换方法。
依据本发明的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的浏览器内核的智能切换方法。
本发明具备如下优点:
本发明提供的浏览器内核的智能切换方法、装置、终端及存储介质,通过将待测网页数据进行HTML解析,生成DOM树,根据所述DOM树获取待测网页数据对应的内置函数列表、内置样式列表和事件列表,从而通过预先生成的静态决策树对待测网页数据进行分类,得到待测网页数据对应的浏览器内核,由于是对网页特征进行分析,不需要借助指示性META标签,能够准确的识别遗留型网站的适应性内核及其版本,从而可以智能的切换浏览器的内核,提高了内核切换的通用性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1是本发明实施例提供的一种浏览器内核的智能切换方法的步骤流程图;
图2是本发明实施例提供的一种浏览器内核的智能切换方法的步骤流程图;
图3是本发明实施例提供的一种浏览器内核的智能切换方法的步骤流程图;
图4是本发明实施例提供的一种浏览器内核的智能切换装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1是本发明实施例提供的一种浏览器内核的智能切换方法的步骤流程图,该方法可以应用于浏览器中,如图1所示,该方法可以包括:
步骤101,将待测网页数据进行HTML解析,以生成DOM树。
其中,DOM(Document Object Model,文档对象模型)是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,DOM就是用来表示文档中对象的标准模型。
通过HTML(HyperText Markup Language,超文本标记语言)解析器对待测网页数据进行HTML解析,生成DOM树。DOM树是HTML解析器输出的解析树,是由DOM元素及属性结点组成的,它是HTML文档的对象表示,作为HTML元素的外部接口供JS等调用。
步骤102,根据所述DOM树,获取所述待测网页数据对应的内置函数列表、内置样式列表和事件列表。
其中,内置函数列表、内置样式列表和事件列表均是与待测网页数据的网页内容相关的属性。
遍历所述DOM树中的相关结点,获取与文档对象(document)和窗口对象(window)相关的函数调用信息,生成内置函数列表。遍历所述DOM树中的相关结点,获取与浏览器内核相关的CSS属性信息,生成内置样式列表。遍历所述DOM树中的相关结点,获取与事件相关的事件类型,生成事件列表。
步骤103,根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核。
其中,决策树(Decision Tree,也称为分类树)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。在本发明实施例中,静态决策树是指对网页数据的网页内容进行静态分析的决策树。
将所述内置函数列表、内置样式列表和事件列表输入预先生成的静态决策树,对待测网页数据进行分类,静态决策树输出的分类对应的浏览器内核即为待测网页数据对应的浏览器内核,通过该浏览器内核即可对待测网页数据进行解析渲染。
可选的,所述根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核,包括:
通过预先生成的静态决策树,根据所述内置函数列表、内置样式列表和事件列表,对待测网页数据进行分类,得到待测网页数据在所属分类的第一概率;
在所述第一概率中最大的第一概率大于或等于设定阈值时,确定所述最大的第一概率对应的分类为所述待测网页数据对应的浏览器内核。
其中,第一概率是静态决策树输出的待测网页数据在所属分类的概率。
将内置函数列表、内置样式列表和事件列表输入预先生成的静态决策树,对待测网页数据进行分类,各个分类代表不同的浏览器内核,如IE内核或Chrome内核等,静态决策树的输出是待测网页数据在所属分类的第一概率,如果最大的第一概率大于或等于设定阈值,则确定最大的第一概率对应的分类为待测网页数据对应的浏览器内核。从而根据静态决策树输出的分类的第一概率便可以确定浏览器内核,加快了浏览器内核的切换速度。
本实施例提供的浏览器内核的智能切换方法,通过将待测网页数据进行HTML解析,生成DOM树,根据所述DOM树获取待测网页数据对应的内置函数列表、内置样式列表和事件列表,从而通过预先生成的静态决策树对待测网页数据进行分类,得到待测网页数据对应的浏览器内核,由于是对网页特征进行分析,不需要借助指示性META标签,能够准确的识别遗留型网站的适应性内核及其版本,从而可以智能的切换浏览器的内核,提高了内核切换的通用性。
在上述技术方案的基础上,所述通过预先生成的静态决策树,对所述内置函数列表、内置样式列表和事件列表进行分类,得到所述待测网页数据对应的浏览器内核,还可选包括:
在所述第一概率中最大的第一概率小于所述设定阈值时,使用指定内核执行所述待测网页数据,获取浏览器的错误和日志记录;
根据所述错误和日志记录,确定所述待测网页数据对应指定内核的JS错误类型和CSS错误类型;
通过预先生成的动态决策树,根据所述待测网页数据对应指定内核的JS错误类型和CSS错误类型,对所述待测网页数据进行分类,得到待测网页数据在所属分类的第二概率;
确定所述第二概率最大的分类为所述待测网页数据对应的浏览器内核。
其中,第二概率是动态决策树输出的待测网页数据在所属分类的概率。在本发明实施例中,动态决策树是对待测网页数据在指定内核执行时产生的JS错误类型和CSS错误类型分析的决策树。指定内核是预先指定的浏览器内核,可以包括至少两个内核,如IE内核和Chrome内核等。错误和日志记录只有在待测网页数据使用与之不对应的浏览器内核执行时才会产生。
如果静态决策树输出的分类的第一概率中最大的第一概率小于设定阈值,则进一步使用指定内核中的每个指定内核分别执行待测网页数据,获取浏览器的错误和日志记录,根据错误和日志记录,确定待测网页数据对应指定内核的JS错误类型和CSS错误类型,将待测网页数据对应指定内核的JS错误类型和CSS错误类型输入预先生成的动态决策树,得到待测网页数据在所属分类的第二概率,则该第二概率最大的分类对应的浏览器内核为待测网页数据对应的浏览器内核。通过在第一概率中最大的概率小于设定阈值时,进一步用指定内核进行执行,并用动态决策树根据JS错误类型和CSS错误类型进行分类,得到概率最大的分类对应的浏览器内核为待测网页数据对应的浏览器内核,提高了确定的浏览器内核的准确性,进一步提高了浏览器内核切换的通用性。
在上述技术方案的基础上,还可选包括:
通过指定内核分别执行网页数据集中的网页数据样本,并获取在执行所述网页数据样本时的错误和日志记录;
根据在执行所述网页数据样本时浏览器的错误和日志记录,确定所述网页数据样本对应指定内核的JS错误类型和CSS错误类型;
根据所述网页数据样本对应指定内核的JS错误类型和CSS错误类型,通过决策树算法,生成动态决策树。
其中,网页数据集是已知浏览器内核的大量网页数据样本的集合。
通过每个指定内核分别执行网页数据集中的网页数据样本,获取浏览器的错误和日志记录,根据该错误和日志记录,确定网页数据样本对应指定内核的JS错误类型和CSS错误类型,从而以网页数据样本对应指定内核的JS错误类型和CSS错误类型为特征对网页数据样本进行分类,通过决策树算法生成动态决策树。通过大量的网页数据样本生成动态决策树,从而可以在最大的第一概率小于设定阈值时,通过动态决策树对待测网页数据进行分类确定浏览器内核。
图2是本发明实施例提供的一种浏览器内核的智能切换方法的步骤流程图,本实施例在上述实施例的基础上,所述根据所述DOM树,获取所述待测网页数据对应的内置函数列表、内置样式列表和事件列表,进一步包括:对所述DOM树中脚本结点中的JS脚本进行解析,以生成内置函数列表;对所述DOM树中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成内置样式列表;获取所述DOM树中所有结点中的事件类型,生成事件列表。如图2所示,该方法可以包括:
步骤201,将待测网页数据进行HTML解析,以生成DOM树。
本步骤的具体内容与上述实施例中的步骤101的具体内容相同,这里不再赘述。
步骤202,对所述DOM树中脚本结点中的JS脚本进行解析,以生成内置函数列表。
遍历DOM树中的脚本(<script>)结点,对脚本结点中的JS(Javascript)脚本进行JAVASCRIPT解析器解析,得到JS抽象语法树(Abstract Syntax Tree,AST)集,在JS抽象语法树集中获取与文档对象和窗口对象相同的函数调用关系,以生成内置函数列表。
可选的,对所述DOM树中脚本结点中的JS脚本进行解析,以生成内置函数列表,包括:
对所述DOM树中脚本结点中的内嵌JS脚本进行解析,以生成第一JS抽象语法树集;
获取所述第一抽象语法树集中文档对象和窗口对象的函数调用关系,以生成第一内置函数列表;
对所述DOM树中的脚本结点中的外部JS脚本进行解析,以生成第二JS抽象语法树集;
获取所述第二抽象语法树集中的文档对象和窗口对象的函数调用关系,以生成第二内置函数列表;
合并所述第一内置函数列表和所述第二内置函数列表,以生成所述内置函数列表。
首先遍历DOM树中的脚本结点,通过JS解析器对脚本结点中的内嵌JS进行解析,生成第一JS抽象语法树集,遍历第一JS抽象语法树集,获取与文档对象(document)和窗口对象(window)相关的函数调用信息,生成第一内置函数列表;再次遍历DOM树中的脚本结点,通过JS解析器对脚本结点中的src属性所对应的外部JS脚本进行解析,生成第二JS抽象语法树集,遍历第二JS抽象语法树集,获取与文档对象和窗口对象相关的函数调用信息,生成第二内置函数列表。合并第一内置函数列表和第二内置函数列表,将其中重复的内置函数合并为一个,并合并在一个表格中,生成内置函数列表。其中,src属性规定外部脚本文件的URL。
步骤203,对所述DOM树中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成内置样式列表。
遍历DOM树中的所有结点的样式(style)属性,获取所有节点的样式属性中的CSS(Cascading Style Sheets,层叠样式表)文本,遍历DOM树中的链接(<link>)结点,获取链接结点中的CSS文本,对获取到的CSS文本进行解析,生成内置样式列表。CSS是一种用来表现HTML或XML等文件样式的计算机语言。
可选的,对所述DOM树中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成内置样式列表,包括:
对所述DOM树中的所有结点的样式属性中的内嵌CSS文本进行解析,以生成第一CSS规则语法树集;
获取所述第一CSS规则语法树集中的与浏览器内核相关的CSS属性信息,以生成第一内置样式列表;
对所述DOM树中的链接结点中外部CSS文本进行解析,以生成第二CSS规则语法树集;
获取所述第二CSS规则语法树集中与浏览器内核相关的CSS属性信息,以生成第二内置样式列表;
合并所述第一内置样式列表和所述第二内置样式列表,以生成所述内置样式列表。
首先遍历DOM树中的所有结点的style属性,通过CSS解析器对style属性中的内嵌CSS文本进行解析,生成第一CSS规则语法树集,遍历第一CSS规则语法树集,获取与浏览器的内核相关的CSS属性信息,生成第一内置样式列表;遍历DOM树中的链接结点,通过CSS解析器对链接结点中的src属性所对应的外部CSS文本进行解析,生成第二CSS规则语法树集,遍历第二CSS规则语法树集,获取与浏览器内核相关的CSS属性信息,生成第二内置样式列表。合并第一内置样式列表和第二内置样式列表,将其中重复的内置函数合并为一个,并合并在一个表格中,得到内置样式列表。
步骤204,获取所述DOM树中所有结点中的事件类型,生成事件列表。
遍历DOM树中的所有结点,对其onclick等与事件相关的事件类型,生成事件列表。其中,事件类型包括点击事件、鼠标移动事件、鼠标划出事件等。
步骤205,根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核。
本步骤的具体内容与上述实施例中的步骤103的具体内容相同,这里不再赘述。
本实施例提供的浏览器内核的智能切换方法,通过将待测网页事件进行HTML解析,生成DOM树,对DOM树中的脚本结点中的JS脚本进行解析,生成内置函数列表,对DOM树中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,生成内置样式列表,获取DOM树中所有结点中的事件类型,生成事件列表,从而根据内置函数列表、内置样式类别和事件列表,对待测网页数据进行分类,得到待测网页数据对应的浏览器内核,由于是对网页特征进行分析,不需要借助指示性META标签,能够准确的识别遗留型网站的适应性内核及其版本,从而可以智能的切换浏览器的内核,提高了内核切换的通用性。
图3是本发明实施例提供的一种浏览器内核的智能切换方法的步骤流程图,本实施例在上述实施例的基础上,加入了静态决策树的训练过程,如图3所示,该方法可以包括:
步骤301,获取网页数据集中的网页数据样本对应的内置函数列表、内置样式列表和事件列表。
其中,网页数据集是已知浏览器内核的大量网页数据样本的集合。
对网页数据样本进行HTML解析,得到对应的DOM树,并根据各个网页数据样本的DOM树,获取各个网页数据样本对应的内置函数列表、内置样式列表和事件列表。
可选的,获取网页数据集中的网页数据样本对应的内置函数列表、内置样式列表和事件列表,包括:
在所述网页数据集中获取当前处理的网页数据样本;
对所述网页数据样本进行解析,生成对应的DOM树样本;
对所述DOM树样本中脚本结点中的JS脚本进行解析,以生成所述网页数据样本对应的内置函数列表;
对所述DOM树样本中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成所述网页数据样本对应的内置样式列表;
获取所述DOM树样本中所有结点中的事件类型,以生成所述网页数据样本对应的事件列表。
可以按照网页数据集中的网页数据样本的顺序,依次对每个网页数据样本进行处理,从而可以通过遍历网页数据集中的网页数据样本,获取当前处理的网页数据样本。对当前处理的网页数据样本,生成对应的DOM树,该DOM树可以成为DOM树样本,通过JAVASCRIPT解析器对DOM树样本中脚本结点中的JS脚本进行解析,生成网页数据样本对应的内置函数列表。分别对DOM树样本中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,生成网页数据样本对应的内置样式列表。遍历DOM树样本中的所有结点,获取与事件相关的事件类型,生成事件列表。其中,事件类型包括点击事件、鼠标移动事件、鼠标划出事件等。
步骤302,将所述网页数据样本对应的内置函数列表以指定内核对应的函数为特征进行分类,并根据决策树算法,生成第一分类树。
其中,指定内核是预先指定的浏览器内核,可以包括至少两个内核,如IE内核和Chrome内核等。指定内核对应的函数为指定内核的特定函数,可以区别于其他浏览器内核的函数。例如,IE内核对应的函数包括:moveRow()、parentWindow、applyElement、clearAttributes、mergeAttributes、removeNode、replaceNode、sourceIndex和swapNode,Chrome内核对应的函数包括:defaultView、doctype、characterSet、add(opt,opt)、dataset、classList、getElementsByClassName、querySelector、querySelectorAll和childElementCount。
决策树算法可以为C4.5算法,也可以是其他决策树算法。C4.5是一系列用在机器学习和数据挖掘的分类问题中的算法。它的目标是监督学习:给定一个数据集,其中的每一个元组都能用一组属性值来描述,每一个元组属于一个互斥的类别中的某一类。C4.5的目标是通过学习,找到一个从属性值到类别的映射关系,并且这个映射能用于对新的类别未知的实体进行分类。
C4.5由J.Ross Quinlan在ID3的基础上提出的。ID3算法用来构造决策树。决策树是一种类似流程图的树结构,其中每个内部节点(非树叶节点)表示在一个属性上的测试,每个分枝代表一个测试输出,而每个树叶节点存放一个类标号。一旦建立好了决策树,对于一个未给定类标号的元组,跟踪一条由根节点到叶节点的路径,该叶节点就存放着该元组的预测。决策树的优势在于不需要任何领域知识或参数设置,适合于探测性的知识发现。
第一分类树是通过以指定内核对应的函数为特征对网页数据集中的所有网页数据样本进行分类生成的。
步骤303,基于所述第一分类树,将所述网页数据样本对应的内置样式列表以所述指定内核对应的样式为特征进行分类,并根据所述决策树算法,生成第二分类树。
其中,指定内核对应的样式为指定内核对应的特定样式,可以区别于其他浏览器内核的样式。例如,IE内核对应的样式为background-position-x and–y;Chrome内核对应的样式如下:
>selector
[attr]selector
:before and:after
::selection
:not
:target
-webkit-background-clip:text
box-decoration-break
inherit value
在第一分类树的基础上,采用同样的决策树算法,继续以指定内核对应的样式为特征按照网页数据样本对应的内置样式列表对网页数据样本进行分类,生成第二分类树。
步骤304,基于所述第二分类树,将所述网页数据样本对应的事件列表以所述指定内核对应的事件类型为特征进行分类,并根据所述决策树算法,生成第三分类树。
其中,指定内核对应的事件类型为指定内核的特定事件类型,可以区别于其他浏览器内核的事件类型。例如,IE内核对应的事件类型包括:mouseenter和mouseleave。Chrome内核对应的事件列席包括textinput、Hashchange和mousewheel。
在第二分类树的基础上,采用同样的决策树算法,继续以指定内核对应的事件类型为特征按照网页数据样本对应的事件列表对网页数据样本进行分类,生成第三分类树。
步骤305,对所述第三分类树执行悲观剪枝算法,以生成静态决策树。
其中,在决策树创建时,由于数据中的噪声和离群点,许多分枝反映的是训练数据中的异常。剪枝方法是用来处理这种过分拟合数据的问题。通常剪枝方法都是使用统计度量,剪去最不可靠的分枝。剪枝一般包括先剪枝和后剪枝。悲观剪枝算法是一种后剪枝算法。
通过对第三分类树执行悲观剪枝算法,减少过分拟合数据的问题。
步骤306,将待测网页数据进行HTML解析,以生成DOM树。
本步骤的具体内容与上述实施例中的步骤101的具体内容相同,这里不再赘述。
步骤307,根据所述DOM树,获取所述待测网页数据对应的内置函数列表、内置样式列表和事件列表。
本步骤的具体内容与上述实施例中的步骤102的具体内容相同,这里不再赘述。
步骤308,根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核。
本步骤的具体内容与上述实施例中的步骤103的具体内容相同,这里不再赘述。
本实施例提供的浏览器内核的智能切换方法,通过获取网页数据集中的网页数据样本对应的内置函数列表、内置样式列表和事件列表,将网页数据样本对应的内置函数列表以指定内核对应的函数为特征进行分类,根据决策树算法生成第一分类树,基于第一分类树,将网页数据样本对应的内置样式类别以所述指定内核对应的样式为特征进行分类,生成第二分类树,基于第二分类树,将网页数据样本对应的事件列表以指定内核对应的事件类型为特征进行分类,生成第三分类树,对第三分类树执行悲观剪枝算法,生成静态决策树,从而便于后续通过静态决策树对待测网页数据进行分类确定浏览器内核。
在上述技术方案的基础上,对所述DOM树样本中脚本结点中的JS脚本进行解析,以生成所述网页数据样本对应的内置函数列表,可选包括:
对所述DOM树样本中脚本结点中的内嵌JS脚本进行解析,以生成第一JS抽象语法树集样本;
获取所述第一抽象语法树集样本中文档对象和窗口对象的函数调用关系,以生成所述网页数据样本对应的第一内置函数列表;
对所述DOM树样本中的脚本结点中的外部JS脚本进行解析,以生成第二JS抽象语法树集样本;
获取所述第二抽象语法树集样本中的文档对象和窗口对象的函数调用关系,以生成所述网页数据样本对应的第二内置函数列表;
合并所述网页数据样本对应的第一内置函数列表和第二内置函数列表,得到所述网页数据样本对应的内置函数列表。
对DOM树样本中<script>结点中内嵌JS脚本进行解析,在生成的第一JS抽象语法树集样本中获取document和window的函数调用信息,从而生成第一内置函数列表。在DOM树样本中<script>结点的src属性对应的外部JS脚本进行解析,在生成的第二JS抽象语法树集样本中获取document和window的函数调用信息,从而生成第二内置函数列表。合并第一内置函数列表和第二内置函数列表,得到网页数据样本对应的内置函数列表。
在上述技术方案的基础上,所述对所述DOM树样本中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成所述网页数据样本对应的内置样式列表,可选包括:
对所述DOM树样本中的所有结点的样式属性中的内嵌CSS文本进行解析,以生成第一CSS规则语法树集样本;
获取所述第一CSS规则语法树集样本中的与浏览器内核相关的CSS属性信息,以生成所述网页数据样本对应的第一内置样式列表;
对所述DOM树样本中的链接结点中外部CSS文本进行解析,以生成第二CSS规则语法树集样本;
获取所述第二CSS规则语法树集样本中与浏览器内核相关的CSS属性信息,以生成所述网页数据样本对应的第二内置样式列表;
合并所述网页数据样本对应的第一内置样式列表和第二内置样式列表,得到所述网页数据样本对应的内置样式列表。
对DOM树样本中的所有结点的样式(style)属性中的内嵌CSS文本进行解析,在生成的第一CSS规则语法树集样本中获取与浏览器内核相关的CSS属性信息,生成网页数据样本对应的第一内置样式列表。对DOM样本中链接(<link>)结点的src属性对应的外部CSS文本进行解析,在生成的第二CSS规则语法树集样本中获取与浏览器内核相关的CSS属性信息,生成网页数据样本对应的第二内置样式列表。合并第一内置样式列表和第二内置样式列表,得到网页数据样本对应的内置样式列表。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
图4是本发明实施例提供的一种浏览器内核的智能切换装置的结构框图,该浏览器内核的智能切换装置可以应用于浏览器中,如图4所示,该浏览器内核的智能切换装置400可以包括:
DOM树生成模块401,用于将待测网页数据进行HTML解析,以生成DOM树;
列表获取模块402,用于根据所述DOM树,获取所述待测网页数据对应的内置函数列表、内置样式列表和事件列表;
内核确定模块403,用于根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核。
可选的,所述列表获取模块包括:
JS脚本解析单元,用于对所述DOM树中脚本结点中的JS脚本进行解析,以生成内置函数列表;
CSS文本解析单元,用于对所述DOM树中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成内置样式列表;
事件类型获取单元,用于获取所述DOM树中所有结点中的事件类型,生成事件列表。
可选的,所述JS脚本解析单元具体用于:
对所述DOM树中脚本结点中的内嵌JS脚本进行解析,以生成第一JS抽象语法树集;
获取所述第一抽象语法树集中文档对象和窗口对象的函数调用关系,以生成第一内置函数列表;
对所述DOM树中的脚本结点中的外部JS脚本进行解析,以生成第二JS抽象语法树集;
获取所述第二抽象语法树集中的文档对象和窗口对象的函数调用关系,以生成第二内置函数列表;
合并所述第一内置函数列表和所述第二内置函数列表,以生成所述内置函数列表。
可选的,所述CSS文本解析单元具体用于:
对所述DOM树中的所有结点的样式属性中的内嵌CSS文本进行解析,以生成第一CSS规则语法树集;
获取所述第一CSS规则语法树集中的与浏览器内核相关的CSS属性信息,以生成第一内置样式列表;
对所述DOM树中的链接结点中外部CSS文本进行解析,以生成第二CSS规则语法树集;
获取所述第二CSS规则语法树集中与浏览器内核相关的CSS属性信息,以生成第二内置样式列表;
合并所述第一内置样式列表和所述第二内置样式列表,以生成所述内置样式列表。
可选的,所述内核确定模块包括:
第一分类单元,用于通过预先生成的静态决策树,根据所述内置函数列表、内置样式列表和事件列表,对待测网页数据进行分类,得到待测网页数据在所属分类的第一概率;
第一内核确定单元,用于在所述第一概率中最大的第一概率大于或等于设定阈值时,确定所述最大的第一概率对应的分类为所述待测网页数据对应的浏览器内核。
可选的,所述内核确定模块还包括:
记录获取单元,用于在所述第一概率中最大的第一概率小于所述设定阈值时,使用指定内核执行所述待测网页数据,获取浏览器的错误和日志记录;
错误类型确定单元,用于根据所述错误和日志记录,确定所述待测网页数据对应指定内核的JS错误类型和CSS错误类型;
第二分类单元,用于通过预先生成的动态决策树,根据所述待测网页数据对应指定内核的JS错误类型和CSS错误类型,对所述待测网页数据进行分类,得到待测网页数据在所属分类的第二概率;
第二内核确定单元,用于确定所述第二概率最大的分类为所述待测网页数据对应的浏览器内核。
可选的,还包括:
样本错误记录获取模块,用于通过指定内核分别执行网页数据集中的网页数据样本,并获取在执行所述网页数据样本时浏览器的错误和日志记录;
样本错误类型确定模块,用于根据在执行所述网页数据样本时浏览器的错误和日志记录,确定所述网页数据样本对应指定内核的JS错误类型和CSS错误类型;
动态决策树生成模块,用于根据所述网页数据样本对应指定内核的JS错误类型和CSS错误类型,通过决策树算法,生成动态决策树。
可选的,还包括:
样本列表获取模块,用于获取网页数据集中的网页数据样本对应的内置函数列表、内置样式列表和事件列表;
第一分类树生成模块,用于将所述网页数据样本对应的内置函数列表以指定内核对应的函数为特征进行分类,并根据决策树算法,生成第一分类树;
第二分类树生成模块,用于基于所述第一分类树,将所述网页数据样本对应的内置样式列表以所述指定内核对应的样式为特征进行分类,并根据所述决策树算法,生成第二分类树;
第三分类树生成模块,用于基于所述第二分类树,将所述网页数据样本对应的事件列表以所述指定内核对应的事件类型为特征进行分类,并根据所述决策树算法,生成第三分类树;
静态决策树生成模块,用于对所述第三分类树执行悲观剪枝算法,以生成静态决策树。
可选的,所述样本列表获取模块包括:
处理样本确定单元,用于在所述网页数据集中获取当前处理的网页数据样本;
DOM树样本生成单元,用于对所述网页数据样本进行解析,生成对应的DOM树样本;
样本JS脚本解析单元,用于对所述DOM树样本中脚本结点中的JS脚本进行解析,以生成所述网页数据样本对应的内置函数列表;
样本CSS文本解析单元,用于对所述DOM树样本中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成所述网页数据样本对应的内置样式列表;
样本事件类型获取单元,用于获取所述DOM树样本中所有结点中的事件类型,以生成所述网页数据样本对应的事件列表。
可选的,所述样本JS脚本解析单元具体用于:
对所述DOM树样本中脚本结点中的内嵌JS脚本进行解析,以生成第一JS抽象语法树集样本;
获取所述第一抽象语法树集样本中文档对象和窗口对象的函数调用关系,以生成所述网页数据样本对应的第一内置函数列表;
对所述DOM树样本中的脚本结点中的外部JS脚本进行解析,以生成第二JS抽象语法树集样本;
获取所述第二抽象语法树集样本中的文档对象和窗口对象的函数调用关系,以生成所述网页数据样本对应的第二内置函数列表;
合并所述网页数据样本对应的第一内置函数列表和第二内置函数列表,得到所述网页数据样本对应的内置函数列表。
可选的,所述样本CSS文本解析单元具体用于:
对所述DOM树样本中的所有结点的样式属性中的内嵌CSS文本进行解析,以生成第一CSS规则语法树集样本;
获取所述第一CSS规则语法树集样本中的与浏览器内核相关的CSS属性信息,以生成所述网页数据样本对应的第一内置样式列表;
对所述DOM树样本中的链接结点中外部CSS文本进行解析,以生成第二CSS规则语法树集样本;
获取所述第二CSS规则语法树集样本中与浏览器内核相关的CSS属性信息,以生成所述网页数据样本对应的第二内置样式列表;
合并所述网页数据样本对应的第一内置样式列表和第二内置样式列表,得到所述网页数据样本对应的内置样式列表。
本实施例提供的浏览器内核的智能切换装置,通过DOM树生成模块将待测网页数据进行HTML解析,生成DOM树,列表获取模块根据所述DOM树获取待测网页数据对应的内置函数列表、内置样式列表和事件列表,内核确定模块通过预先生成的静态决策树对待测网页数据进行分类,得到待测网页数据对应的浏览器内核,由于是对网页特征进行分析,不需要借助指示性META标签,能够准确的识别遗留型网站的适应性内核及其版本,从而可以智能的切换浏览器的内核,提高了内核确定的通用性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步地,根据本发明的一个实施例,提供了一种终端,所述终端可以为计算机、手机或平板电脑等,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现前述实施例的浏览器内核的智能切换方法。
根据本发明的一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括磁盘存储器、CD-ROM、光学存储器等,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例的浏览器内核的智能切换方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种浏览器内核的智能切换方法、装置、终端和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (16)

1.一种浏览器内核的智能切换方法,其特征在于,包括:
将待测网页数据进行HTML解析,以生成文档对象模型DOM树;
根据所述DOM树,获取所述待测网页数据对应的内置函数列表、内置样式列表和事件列表;
根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核;
其中,所述根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核,包括:
通过预先生成的静态决策树,根据所述内置函数列表、内置样式列表和事件列表,对待测网页数据进行分类,得到待测网页数据在所属分类的第一概率;
在所述第一概率中最大的第一概率小于设定阈值时,使用指定内核执行所述待测网页数据,获取浏览器的错误和日志记录,根据所述错误和日志记录,确定所述待测网页数据对应指定内核的JS错误类型和CSS错误类型,通过预先生成的动态决策树,根据所述待测网页数据对应指定内核的JS错误类型和CSS错误类型,对所述待测网页数据进行分类,得到待测网页数据在所属分类的第二概率;确定所述第二概率最大的分类为所述待测网页数据对应的浏览器内核。
2.根据权利要求1所述的方法,其特征在于,所述根据所述DOM树,获取所述待测网页数据对应的内置函数列表、内置样式列表和事件列表,包括:
对所述DOM树中脚本结点中的JS脚本进行解析,以生成内置函数列表;
对所述DOM树中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成内置样式列表;
获取所述DOM树中所有结点中的事件类型,生成事件列表。
3.根据权利要求2所述的方法,其特征在于,对所述DOM树中脚本结点中的JS脚本进行解析,以生成内置函数列表,包括:
对所述DOM树中脚本结点中的内嵌JS脚本进行解析,以生成第一JS抽象语法树集;
获取所述第一抽象语法树集中文档对象和窗口对象的函数调用关系,以生成第一内置函数列表;
对所述DOM树中的脚本结点中的外部JS脚本进行解析,以生成第二JS抽象语法树集;
获取所述第二抽象语法树集中的文档对象和窗口对象的函数调用关系,以生成第二内置函数列表;
合并所述第一内置函数列表和所述第二内置函数列表,以生成所述内置函数列表。
4.根据权利要求2所述的方法,其特征在于,对所述DOM树中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成内置样式列表,包括:
对所述DOM树中的所有结点的样式属性中的内嵌CSS文本进行解析,以生成第一CSS规则语法树集;
获取所述第一CSS规则语法树集中的与浏览器内核相关的CSS属性信息,以生成第一内置样式列表;
对所述DOM树中的链接结点中外部CSS文本进行解析,以生成第二CSS规则语法树集;
获取所述第二CSS规则语法树集中与浏览器内核相关的CSS属性信息,以生成第二内置样式列表;
合并所述第一内置样式列表和所述第二内置样式列表,以生成所述内置样式列表。
5.根据权利要求1所述的方法,其特征在于,所述根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核,还包括:
在所述第一概率中最大的第一概率大于或等于设定阈值时,确定所述最大的第一概率对应的分类为所述待测网页数据对应的浏览器内核。
6.根据权利要求1所述的方法,其特征在于,还包括:
通过指定内核分别执行网页数据集中的网页数据样本,并获取在执行所述网页数据样本时浏览器的错误和日志记录;
根据在执行所述网页数据样本时浏览器的错误和日志记录,确定所述网页数据样本对应指定内核的JS错误类型和CSS错误类型;
根据所述网页数据样本对应指定内核的JS错误类型和CSS错误类型,通过决策树算法,生成动态决策树。
7.根据权利要求1所述的方法,其特征在于,还包括:
获取网页数据集中的网页数据样本对应的内置函数列表、内置样式列表和事件列表;
将所述网页数据样本对应的内置函数列表以指定内核对应的函数为特征进行分类,并根据决策树算法,生成第一分类树;
基于所述第一分类树,将所述网页数据样本对应的内置样式列表以所述指定内核对应的样式为特征进行分类,并根据所述决策树算法,生成第二分类树;
基于所述第二分类树,将所述网页数据样本对应的事件列表以所述指定内核对应的事件类型为特征进行分类,并根据所述决策树算法,生成第三分类树;
对所述第三分类树执行悲观剪枝算法,以生成静态决策树。
8.一种浏览器内核的智能切换装置,其特征在于,包括:
DOM树生成模块,用于将待测网页数据进行HTML解析,以生成DOM树;
列表获取模块,用于根据所述DOM树,获取所述待测网页数据对应的内置函数列表、内置样式列表和事件列表;
内核确定模块,用于根据所述内置函数列表、内置样式列表和事件列表,通过预先生成的静态决策树,对所述待测网页数据进行分类,得到所述待测网页数据对应的浏览器内核;
所述内核确定模块包括:
第一分类单元,用于通过预先生成的静态决策树,根据所述内置函数列表、内置样式列表和事件列表,对待测网页数据进行分类,得到待测网页数据在所属分类的第一概率;
记录获取单元,用于在所述第一概率中最大的第一概率小于设定阈值时,使用指定内核执行所述待测网页数据,获取浏览器的错误和日志记录;
错误类型确定单元,用于根据所述错误和日志记录,确定所述待测网页数据对应指定内核的JS错误类型和CSS错误类型;
第二分类单元,用于通过预先生成的动态决策树,根据所述待测网页数据对应指定内核的JS错误类型和CSS错误类型,对所述待测网页数据进行分类,得到待测网页数据在所属分类的第二概率;
第二内核确定单元,用于确定所述第二概率最大的分类为所述待测网页数据对应的浏览器内核。
9.根据权利要求8所述的装置,其特征在于,所述列表获取模块包括:
JS脚本解析单元,用于对所述DOM树中脚本结点中的JS脚本进行解析,以生成内置函数列表;
CSS文本解析单元,用于对所述DOM树中所有结点的样式属性中的CSS文本和链接结点中的CSS文本进行解析,以生成内置样式列表;
事件类型获取单元,用于获取所述DOM树中所有结点中的事件类型,生成事件列表。
10.根据权利要求9所述的装置,其特征在于,所述JS脚本解析单元具体用于:
对所述DOM树中脚本结点中的内嵌JS脚本进行解析,以生成第一JS抽象语法树集;
获取所述第一抽象语法树集中文档对象和窗口对象的函数调用关系,以生成第一内置函数列表;
对所述DOM树中的脚本结点中的外部JS脚本进行解析,以生成第二JS抽象语法树集;
获取所述第二抽象语法树集中的文档对象和窗口对象的函数调用关系,以生成第二内置函数列表;
合并所述第一内置函数列表和所述第二内置函数列表,以生成所述内置函数列表。
11.根据权利要求9所述的装置,其特征在于,所述CSS文本解析单元具体用于:
对所述DOM树中的所有结点的样式属性中的内嵌CSS文本进行解析,以生成第一CSS规则语法树集;
获取所述第一CSS规则语法树集中的与浏览器内核相关的CSS属性信息,以生成第一内置样式列表;
对所述DOM树中的链接结点中外部CSS文本进行解析,以生成第二CSS规则语法树集;
获取所述第二CSS规则语法树集中与浏览器内核相关的CSS属性信息,以生成第二内置样式列表;
合并所述第一内置样式列表和所述第二内置样式列表,以生成所述内置样式列表。
12.根据权利要求8所述的装置,其特征在于,所述内核确定模块包括:
第一内核确定单元,用于在所述第一概率中最大的第一概率大于或等于设定阈值时,确定所述最大的第一概率对应的分类为所述待测网页数据对应的浏览器内核。
13.根据权利要求8所述的装置,其特征在于,还包括:
样本错误记录获取模块,用于通过指定内核分别执行网页数据集中的网页数据样本,并获取在执行所述网页数据样本时浏览器的错误和日志记录;
样本错误类型确定模块,用于根据在执行所述网页数据样本时浏览器的错误和日志记录,确定所述网页数据样本对应指定内核的JS错误类型和CSS错误类型;
动态决策树生成模块,用于根据所述网页数据样本对应指定内核的JS错误类型和CSS错误类型,通过决策树算法,生成动态决策树。
14.根据权利要求8所述的装置,其特征在于,还包括:
样本列表获取模块,用于获取网页数据集中的网页数据样本对应的内置函数列表、内置样式列表和事件列表;
第一分类树生成模块,用于将所述网页数据样本对应的内置函数列表以指定内核对应的函数为特征进行分类,并根据决策树算法,生成第一分类树;
第二分类树生成模块,用于基于所述第一分类树,将所述网页数据样本对应的内置样式列表以所述指定内核对应的样式为特征进行分类,并根据所述决策树算法,生成第二分类树;
第三分类树生成模块,用于基于所述第二分类树,将所述网页数据样本对应的事件列表以所述指定内核对应的事件类型为特征进行分类,并根据所述决策树算法,生成第三分类树;
静态决策树生成模块,用于对所述第三分类树执行悲观剪枝算法,以生成静态决策树。
15.一种终端,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7任一项所述的浏览器内核的智能切换方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的浏览器内核的智能切换方法。
CN201811361985.5A 2018-11-15 2018-11-15 一种浏览器内核的智能切换方法、装置、终端及存储介质 Active CN109684584B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811361985.5A CN109684584B (zh) 2018-11-15 2018-11-15 一种浏览器内核的智能切换方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811361985.5A CN109684584B (zh) 2018-11-15 2018-11-15 一种浏览器内核的智能切换方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN109684584A CN109684584A (zh) 2019-04-26
CN109684584B true CN109684584B (zh) 2020-02-11

Family

ID=66184693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811361985.5A Active CN109684584B (zh) 2018-11-15 2018-11-15 一种浏览器内核的智能切换方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN109684584B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112650479B (zh) * 2019-10-10 2024-09-03 上海哔哩哔哩科技有限公司 网页css结构自动生成方法及存储介质
CN112860982B (zh) * 2019-11-27 2024-05-10 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及计算机存储介质
CN112379917B (zh) * 2020-11-19 2023-10-20 康键信息技术(深圳)有限公司 浏览器兼容性提升方法、装置、设备及存储介质
CN112445599A (zh) * 2020-12-14 2021-03-05 招商局金融科技有限公司 浏览器内核自动切换方法、装置、设备及存储介质
CN112887408B (zh) * 2021-01-27 2022-11-01 合肥大多数信息科技有限公司 一种用于解决多内核浏览器数据状态共享的系统和方法
CN113806667B (zh) * 2021-09-26 2023-10-03 上海交通大学 一种支持网页分类的方法和系统
CN117093260B (zh) * 2023-10-16 2024-01-12 戎行技术有限公司 一种基于决策树分类算法的融合模型网站结构解析方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681792A (zh) * 2016-11-14 2017-05-17 乐视控股(北京)有限公司 浏览器内核的切换方法及其装置、电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156709B (zh) * 2011-02-28 2020-01-03 奇智软件(北京)有限公司 一种浏览器引擎模式的切换方法
CN103067423B (zh) * 2011-10-20 2015-10-14 腾讯科技(深圳)有限公司 浏览器内核适配的方法和浏览器
CN103164423B (zh) * 2011-12-09 2017-11-03 百度在线网络技术(北京)有限公司 一种用于确定渲染网页的浏览器内核类型的方法与设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681792A (zh) * 2016-11-14 2017-05-17 乐视控股(北京)有限公司 浏览器内核的切换方法及其装置、电子设备

Also Published As

Publication number Publication date
CN109684584A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
CN109684584B (zh) 一种浏览器内核的智能切换方法、装置、终端及存储介质
US12032475B2 (en) Automating identification of test cases for library suggestion models
US10474455B2 (en) Automating identification of code snippets for library suggestion models
US11256502B2 (en) Automatic generation of documentation and aggregation of community content
CN107908959B (zh) 网站信息检测方法、装置、电子设备及存储介质
KR102565455B1 (ko) 신속한 스크리닝을 위한 도메인-특정 언어 해석기 및 대화형 시각적 인터페이스
US20120239598A1 (en) Machine Learning Method to Identify Independent Tasks for Parallel Layout in Web Browsers
US20030040887A1 (en) System and process for constructing and analyzing profiles for an application
Mazinanian et al. An empirical study on the use of CSS preprocessors
US11263062B2 (en) API mashup exploration and recommendation
KR102682244B1 (ko) Esg 보조 툴을 이용하여 정형화된 esg 데이터로 기계학습 모델을 학습하는 방법 및 기계학습 모델로 자동완성된 esg 문서를 생성하는 서비스 서버
US20230195825A1 (en) Browser extension with automation testing support
CN113849718A (zh) 互联网烟草科技情报信息自动采集装置、方法与存储介质
CN104268246B (zh) 生成访问互联网站点指令脚本的方法及访问方法和装置
CN110674033B (zh) 处理代码的方法、装置、设备及存储介质
Zhang et al. Research on keyword extraction and sentiment orientation analysis of educational texts
Sterca et al. Primary building blocks for web automation
CN114282261A (zh) 细粒度隐私策略和移动应用行为一致性检查方法
CN113806667A (zh) 一种支持网页分类的方法和系统
Mazinanian Eliminating code duplication in cascading style sheets
Srivastava et al. Implementation of web application for disease prediction using AI
CN115687736B (zh) 一种web应用的搜索方法、装置及电子设备
US11790892B1 (en) Voice-driven application prototyping using machine-learning techniques
JP6900682B2 (ja) オンラインリソースの収集及び組織化
CN117610540A (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