CN117520678A - 一种网页处理的方法、装置、电子设备及存储介质 - Google Patents
一种网页处理的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117520678A CN117520678A CN202311226955.4A CN202311226955A CN117520678A CN 117520678 A CN117520678 A CN 117520678A CN 202311226955 A CN202311226955 A CN 202311226955A CN 117520678 A CN117520678 A CN 117520678A
- Authority
- CN
- China
- Prior art keywords
- node
- source code
- code file
- content
- nodes
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000000875 corresponding effect Effects 0.000 claims description 20
- 239000002131 composite material Substances 0.000 claims description 13
- 230000002596 correlated effect Effects 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 239000000523 sample Substances 0.000 claims 1
- 238000007429 general method Methods 0.000 abstract 1
- 238000013515 script Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000010926 purge Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- 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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种网页处理的方法、装置、电子设备以及存储介质,涉及互联网技术领域。该方法包括:获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,所述节点树包括节点;根据所述节点的属性特征确定节点内容类型为主体内容的节点;将所述节点内容类型为主体内容的节点合并为一个节点,获得合并后的节点树;根据所述合并后的节点树获得所述目标网页处理后的源代码文件;根据所述处理后的源代码文件显示网页页面。这样,能够提供通用的动态清除网页中的无关内容的方法,提供精简的网页阅读模式,提升用户的阅读体验。
Description
技术领域
本申请涉及互联网技术领域,具体涉及一种网页处理的方法、装置、电子设备及存储介质。
背景技术
通常人们可以通过网页获取文本信息,但是在网页中常常包含了大量的无关内容,例如广告、评论、导航栏等非重要内容。这些非重要内容不仅影响了用户的阅读体验,还会影响网页的加载速度和稳定性。
现有技术通常利用网页内容提取工具或者浏览器插件来自动识别网页中的主体内容,清除无关内容。但是这些浏览器插件需要在浏览器应用商店进行手动安装,而且也无法处理所有类型的网页,不具备通用性。
因此,如何能够提供一种通用的动态清除网页中的无关内容,提供精简的网页阅读模式,提升用户的阅读体验,成为亟待解决的问题。
发明内容
有鉴于此,本申请实施例提供了一种网页处理的方法、装置、电子设备及存储介质。本申请实施例提供的上述方法,可以解决现有技术清除网页无关内容的方法不具备通用性,不能提供精简的网页阅读模式的问题。
本申请实施例第一方面提供了一种网页处理的方法,该方法包括:
获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,所述节点树包括节点;
根据所述节点的属性特征确定节点内容类型为主体内容的节点;
将所述节点内容类型为主体内容的节点合并为一个节点,获得合并后的节点树;
根据所述合并后的节点树获得所述目标网页处理后的源代码文件;
根据所述处理后的源代码文件显示网页页面。
本申请实施例第二方面提供了一种网页处理的装置,包括:
初始源代码文件获得单元,用于获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,所述节点树包括节点;
节点内容类型确定单元,用于根据所述节点的属性特征确定节点内容类型为主体内容的节点;
节点树获得单元,用于将所述节点内容类型为主体内容的节点合并为一个节点,获得合并后的节点树;
处理后的源代码文件获得单元,用于根据所述合并后的节点树获得所述目标网页处理后的源代码文件;
网页显示单元,用于根据所述处理后的源代码文件显示网页页面。
本申请实施例第三方面还提供了一种电子设备,该电子设备包括:
处理器;
存储器;
存储器用于存储网页处理的方法的程序,该程序在被处理器读取执行时,执行如第一方面所述的方法。
本申请实施例第四方面还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时,执行如第一方面所述的方法。
与现有技术相比,本申请具有以下优点:
本申请提供了一种网页处理的方法,首先获得目标网页的初始源代码文件和初始源代码文件对应的节点树,再根据节点树中节点的属性特征确定所述节点的节点内容类型,将确定为主体内容的节点合并为一个节点,获得合并后的节点树,根据合并后的节点树获得目标网页处理后的源代码文件,最后根据处理后的源代码文件显示网页页面。这样,根据节点树的节点属性特征确定节点的节点内容类型,将确定为主体内容的节点合并,获得目标网页处理后的源代码文件,根据处理后的源代码文件显示网页页面,处理后的源代码文件中包含主体内容的节点,去除了无关内容的节点,提供了精简的网页阅读模式,提升用户的阅读体验。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的示例性系统架构示意图;
图2是本申请实施例提供的网页处理的方法的流程示意图;
图3是本申请实施例提供的根据剩余标签构建的节点树的示意图;
图4是本申请实施例提供的网页页面DOM树的示意图;
图5是本申请实施例提供的网页处理的装置框图;
图6是本申请实施例提供的电子设备的逻辑结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
为了使本领域的技术人员能够更好的理解本申请的技术方案,下面结合本申请实施例中的附图,对本申请进行清楚、完整地描述。但本申请能够以很多不同于下述描述的其他方式进行实施,因此,基于本申请提供的实施例,本领域普通技术人员在不经过创造性劳动的情况下,所获得的所有其他实施例,都应属于本申请保护的范围。
需要说明的是,本申请的权利要求书、说明书及附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,并不用于描述特定的顺序或先后次序。这样使用的数据在适当情况下是可以互换的,以便于本文所描述的本申请的实施例,能够以除了在本文图示或描述的内容以外的顺序实施。此外,术语“包括”、“具有”以及他们的变形形式,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或者两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。
应当理解,在本申请实施例中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
通常人们可以通过网页获取文本信息,但是在网页中常常包含了大量的无关内容,例如广告、评论、导航栏等非重要内容。这些非重要内容不仅影响了用户的阅读体验,还会影响网页的加载速度和稳定性。因此,如何能够动态清除网页中的无关内容,提升用户的阅读体验,成为亟待解决的问题。
现有技术通常利用网页内容提取工具或者浏览器插件来自动识别网页中的主体内容,清除无关内容。但是这些浏览器插件需要在浏览器应用商店进行手动安装,而且也无法处理所有类型的网页,不具备通用性。
基于上述原因,为了能够在任何浏览器中自动清除网页页面中的无关内容,本申请第一实施例提供了一种网页处理的方法,该方法应用于电子设备,该电子设备可以是台式电脑、笔记本电脑、手机、平板电脑、服务器、终端设备等,在本申请实施例中不做限定。
为了更好的理解本申请实施例提供的网页处理方法,在介绍本申请实施例提供的网页处理方法之前,先对本申请实施例中提供的网页处理方法的系统架构进行介绍。
如图1所示,其为本申请实施例提供的网页处理方法的示例性系统架构100,该系统包括:终端设备101、102、103,网络104和后台服务器105。网络104用以在终端设备101、102、103和后台服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或光纤电缆等。用户可以使用终端设备101、102、103通过网络104交互,即接收或发送对网页的处理操作。终端设备101、102、103可以是具有显示屏并且支持页面浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上式便携计算机和台式计算机等。后台服务器105可以是提供各种服务的后台服务器,例如对终端设备101、102、103上对网页处理提供支持的后台服务器。后台服务器105可以对接收到的操作或修改等数据进行分析等处理,并将处理结果反馈给终端设备101、102、103,以在终端设备上显示处理结果。
可以理解的,图1中所示出的终端设备、网络和后台服务器的数目仅仅是示意性的,在实际应用中根据实现需要,可以设置具有任意数目的终端设备、网络和后台服务器。
本申请提供的网页处理方法通过将代码片段植入任何浏览器环境中运行。可以理解的,在实际应用时可以将代码片段植入浏览器后台中,也可以将代码片段封装起来,通过浏览器插件的形式运行。
使用本申请提供的网页处理方法后,还可以在浏览器环境中设置网页阅读模式的切换方式,例如可以设置手动按钮切换正常浏览模式和精简阅读模式,也可以在用户点击网页后弹出选择网页阅读模式的弹窗,具体的切换方式在此不作限定。
本申请第一实施例提供一种网页处理的方法。如图2所示,其为本申请第一实施例提供的网页处理的方法的流程示意图。
以下结合图2,对本申请第一实施例提供的一种网页处理的方法进行详细说明。需要说明的是,该流程示意图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,同时,在某些情况下,可以以不同于该流程示意图中示出的逻辑顺序执行所示出的步骤。
如图2所示,本申请第一实施例提供的网页处理的方法包括以下步骤:
步骤S201,获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,所述节点树包括节点。
本步骤用于获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,所述节点树包括节点。
节点(node)是构成网页的源代码文件的最基本的组成部分,网页中的每一个部分都可以称为是一个节点,例如:根节点、元素节点、文本节点、属性节点、注释节点。其中,根节点是表示整个网页的节点,一个网页只有一个根节点,即document;一个网页中有若干元素节点,也称为标签节点,标签节点表示标签及其所包含的内容,例如<div>标签以及其包含的内容、<p>标签以及其包含的内容;属性节点,也称标签属性,表示标签中的属性;文本节点,表示标签中的内容文本;注释节点,表示节点中的注释内容。
DOM(Document Object Model,文档对象模型)是文档对象模型,提供HTML(HyperText Markup Language,超文本标记语言)和XML(Extensible Markup Language,可扩展的标记语言)的应用编程接口。根据W3C DOM(W3C定义的标准的文档对象模型)规范,DOM是一种与浏览器、平台、语言无关的接口,使用DOM可以访问页面其他的标准组件。DOM将整个页面映射为一个由层次节点构成的文件,可以把DOM认为是页面上数据和结构的树形表示,允许开发人员在树中导航寻找特定信息。DOM定义了文档的逻辑结构以及存取和维护文档的方法,开发人员可以利用DOM建立文档,遍历文档的结构,还可以增加、删除以及修改文档的元素和内容。
本步骤用于获得网页页面的初始源代码文件的所有代码,并通过DOM操作获得初始源代码文件对应的节点树,在节点树中包括节点,在节点中包括节点的属性特征。
节点包括根节点、元素节点、文本节点、属性节点、注释节点中的一种或多种,节点中包含节点的各个属性特征。节点的属性特征包括但不限于节点文本信息、节点标签类型信息、节点标签深度信息、节点链接信息中的一种或多种。与此同时,还包括注释节点的属性特征、属性节点的属性特征等非重要的无关节点的信息。
在可选的实施方式中,为了避免后续无关节点的信息对主体内容识别的干扰,可以对初始源代码文件进行预处理,并基于预处理后的初始源代码文件更新节点树。
对初始源代码文件进行预处理,包括:遍历所述初始源代码文件中的节点标签;根据所述初始源代码文件的节点标签识别目标网页的无关标签;根据预设的正则表达式去除无关标签及内容,获得预处理后的源代码文件。
在本申请实施例中,可以使用正则表达式去除与网页文本无关的内容,具体的,根据网页中的脚本标签、样式标签、注释标签等节点标签识别网页中的脚本、样式、注释等内容,并利用正则表达式过滤网页中的脚本、样式、注释等与网页文本无关的内容。
其中,网页脚本(Script)是批处理文件的延伸,是一种纯文本保存的程序,是计算机脚本程序,是确定的一系列控制计算机运算操作动作的组合。网页脚本一般有两种,前台脚本和后台脚本。前台脚本一般包括javascript、vbscript flash,可以做特效用,也可以被后台验证使用;后台脚本一般包括java、php、ASP、c#,可以在数据接口之间的交互和验证时使用。通常用<script>标签定义网页脚本,例如JavaScript。如下所示为一段脚本实现逻辑:
<script type="text/javascript">
document.write("Hello World!")
</script>
网页样式:让网页的风格变得更加多样性,可以通过字体样式(font style)、鼠标光标样式、背景样式等调整网页的风格。可以将需要的样式放在样式标签中,如下所示一段为主体代码设置样式的实现逻辑:
<style>标签中的内容是为<body>标签中的文本内容设置的样式的内容。
网页注释:网页注释是不会被浏览器解析或呈现的文本,注释通常用于向其他开发人员或维护者解释代码的作用和意图,以帮助开发人员或维护者更好地理解和修改代码。同时,注释也可以用于临时隐藏代码块,方便测试和调试。通常注释标签为<!--…-->,如下所示为一段注释标签的实现逻辑:
<!--mud1-->
遍历初始源代码文件中所有的节点标签,通过上述节点标签识别出与文本无关的标签后,通过预设的正则表达式去除无关标签及无关标签包含的内容,获得预处理后的源代码文件,避免无关标签中的内容对于后续主体内容识别的干扰。
正则表达式(Regular Expression,RE)是对字符串操作的一种逻辑公式,利用事先定义好的特定字符以及特定字符的组合,组成规则字符串,用来表达对字符串的一种过滤逻辑。其中,字符串包括普通字符(例如,a到z的字母)和特殊字符(称为“元字符”)。
具体的,在实施过程中通过DOM获取网页代码的<body>标签后,利用相关的正则表达式循环遍历DOM中的所有标签及内容,将包含脚本标签、样式标签、注释标签等与网页文本无关的内容去除,获得预处理后的源代码文件。
获得预处理后的源代码文件后,还需要基于预处理后的源代码文件更新节点树。可以将网页中的每个标签转换为一个节点并保存节点的属性特征,再构建表示网页结构的DOM树。
具体的,基于预处理后的所述初始源代码文件更新节点树,包括:创建根节点;遍历所述预处理后的源代码文件的节点标签,将所述节点标签转换为节点;根据所述节点更新节点树。
创建一个根节点来表示整个网页。文档的根节点,也就是document节点,每个网页都有自身的根节点。创建根节点后,遍历所述预处理后的源代码文件的节点标签,将所述节点标签转换为节点。可以是遍历节点中剩余的标签,将每个标签转换为一个节点,此时节点中剩余的标签大多数是与文本相关的标签。最后将节点添加到节点树中,构建表示预处理后的源代码文件对应的节点树,作为更新后的节点树。
创建根节点后,遍历节点中剩余的标签,此时节点中剩余的标签是网页页面中通过初步筛查后的标签,此时节点标签大部分是与文本相关的标签。根据剩余的节点标签以及节点标签中的相关信息,构建预处理后的源代码文件的节点树。如下所示,其为本申请实施例提供的剩余标签的实现逻辑:
如图3所示,其为本申请实施例提供的根据剩余标签构建的节点树的示意图。图3为HTML结构,构建了标签节点的节点树。构建节点树的节点中保存了节点文本信息、节点标签类型信息、节点标签深度信息、节点链接信息中的一种或多种。
其中,节点的文本中包含了节点的具体文本内容,节点的标签类型表示节点的具体类型,节点的标签深度为从根节点到该节点的深度。
当节点的属性特征中包含节点文本信息时,为了后续更好地识别主体内容,可以对节点文本信息进行处理。具体的,对节点的文本中包含的空白字符和/或换行符去除,以避免空白字符和/或换行符干扰主体内容的识别。
步骤S202,根据所述节点的属性特征确定节点内容类型为主体内容的节点。
本步骤用于根据节点的属性特征确定节点内容类型为主体内容的节点。在本申请实施例中,提供了多种根据节点的属性特征确定节点内容类型的方式,下面在此进行详细介绍。
S202-a:根据节点的属性特征的综合得分确定节点内容类型。
具体的,确定节点的属性特征的综合得分策略;根据所述节点的属性特征和所述综合得分策略确定所述节点的综合得分;将所述节点的综合得分与所述节点分数阈值比较;若判断所述节点的综合得分大于所述节点分数阈值,则确定所述节点为主体内容的节点。
在可选的实施例中,可以将节点的文本长度、链接密度以及标签深度共同作为确定节点综合得分策略的影响参数,获得节点属性特征的综合得分策略。其中,节点的综合得分与节点文本长度信息正相关;和/或,所述节点的综合得分与节点标签深度信息正相关;和/或,所述节点的综合得分与节点链接信息负相关。
根据节点综合得分策略的影响参数以及节点综合得分与影响参数之间的关系确定节点综合得分策略。
其中,一种具体的节点综合得分策略可以为:Score=(1-getLinkDensity(node))*getTextLength(node)*getDepthScore(node)。
getLinkDensity(node)表示节点链接密度,getTextLength(node)表示节点文本长度,getDepthScore(node)表示节点标签深度。
另一种具体的节点综合得分策略可以为:Score=(1-getLinkDensity(node))*(getTextLength(node)/100)*(getDepthScore(node)+1)。
可以理解的,节点综合得分策略可以根据需求自行设置,只需要使得节点综合得分策略与节点的本长度参数、节点的标签深度参数正相关,与节点链接密度参数负相关即可。
getLinkDensity(node)用来计算节点中链接的密度。一般情况下,通过<a>标签定义超链接,用于从一个页面链接到另一个页面。<a>标签重要的一个属性是href属性,用于创建指向另外一个文档的链接或超链接。如下所示为一个链接的实现逻辑:
<a href="http://www.baidu.com.cn"></a>
在本申请实施例中,根据节点中链接的数量与节点的文本长度,计算链接的密度。节点中链接的数量越多,节点的文本长度越短,那么链接的密度越高。具体的,可以用节点中链接的数量与节点的文本长度的比值,获得节点链接密度。
网页文档中的链接越多,跳转至其他网页文档的可能性越大,网页文档的可读价值越低,此时节点综合得分也会相应越低。因此,节点的综合分与节点链接密度负相关。
getTextLength(node)表示节点文本长度,以判断节点的重要性。一般情况下,节点的文本长度越长,节点的重要性越高,节点是主体内容的可能性越大。因此,getTextLength(node)与节点分数呈正相关。
getDepthScore(node)表示节点的深度得分。从根节点数下来到该节点上有几层,就表示该节点的深度是多少。如图4所示,其为一个网页页面DOM树的示意图。节点8为根节点,深度为0;节点3、节点10为第一层节点,深度为1;节点1、节点6及节点14为第二层节点,深度为2;节点4、节点7及节点13为第三层节点,深度为3。
节点的深度越深,节点中的内容是主体内容的概率越大。一般情况下,如果为网页页面插入广告等无关内容时,插入深度较浅的节点上。
确定节点的属性特征的综合得分策略后,还需要设置节点分数阈值。节点分数阈值可以根据综合得分策略自行设置。
根据节点的属性特征和综合得分策略确定具体的节点的综合得分,进一步将节点的综合得分与节点分数阈值相比较,若判断节点的综合得分大于节点分数阈值,则确定该节点为主体内容的节点。
S202-b:根据节点的特定属性特征确定节点内容类型。
具体的,从所述节点的属性特征中确定第一属性特征;当所述第一属性特征大于预设阈值时,确定所述节点为节点内容类型为主体内容的节点。
当确定第一属性特征为文本长度信息时,第一属性特征预设阈值为文本长度预设阈值。如果节点的文本长度超过文本长度预设阈值,则认为该节点为主体内容的节点。
节点的文本长度越长,节点的重要性越高,节点为主体内容的节点的可能性越大。即,可以根据节点的第一属性特征,如文本长度来确定节点的内容类型。例如,设置文本长度预设阈值为25,当文本长度大于25时,则认为该节点为主体内容的节点。
S202-c:根据节点的相关节点的特征确定节点内容类型。
例如,如果节点的父节点是标题标签,则认为该节点的内容是主体内容。如果该节点的父节点是标题标签,那么标题标签下的该节点为主体内容的节点。
如果节点的兄弟节点中存在多个<p>标签,则认为该节点为主体内容的节点。如果判断该节点的其他兄弟节点中存在多个文本标签,那么也认为该节点中也存在文本标签,判断该节点为主体内容的节点。
如果节点的文本中包含特定的能够识别该节点不是主体内容的关键词,则认为该节点为无关内容的节点。例如,节点的文本中包含“阅读全文”、“下一页”等关键词时,表明该文本不是主体内容,则认为该节点为无关内容的节点。
上述通过S202-a~S202-c介绍了多种根据所述节点的属性特征确定节点内容类型为主体内容的节点的方式,在实际操作时,可以选取上述多种方式中的一种来确定节点内容类型,也可以综合使用多种方式来判断哪些节点是主体内容的节点,哪些节点是无关内容的节点。
例如,选择S202-a和S202-b作为确定节点内容类型的方式,根据S202-a获得节点3、6、15、20为主体内容的节点,根据S202-b获得节点17为主体内容的节点,那么可以选择通过S202-a方式和S202-b方式获得的节点作为主体内容的节点,即节点3、6、15、17、20主体内容的节点,也可以对S202-a方式和S202-b方式设置不同的权重确定最终的作为主体内容的节点,也可以在获得的作为主体内容的节点中选取部分作为最终的主体内容节点,即在节点3、6、15、20中选择节点分数较高的三个节点加上节点17作为主体内容的节点。
在实际需求中可以自行设置,在此不作限制。任何可行的确定节点内容类型的方式都在本申请请求保护的范围之内。
本步骤用于根据节点的属性特征确定网页页面中哪些节点是主体内容的节点,哪些节点是无关内容的节点,为后续调整网页页面提供基础。
步骤S203,将所述节点内容类型为主体内容的节点合并为一个节点,获得合并后的节点树。
在可选的实施方式中,在确定节点内容类型为主体内容的节点之后,执行合并节点的步骤之前,本申请实施例提供的网页处理的方法还包括:若所述节点内容类型为主体内容的节点包含多个文本节点标签,可以将节点中的多个文本节点标签合并为一个文本节点标签;同时去除文本节点标签中的其余行内元素标签,获得处理后的主体内容的节点。对DOM树的网页结构进行调整,方便后续显示网页页面。
具体的,将多个p标签合并为一个,并将p标签内的其他行内元素标签的内容提取出来合并到p标签的内容中,将p标签的内部全部去标签化。
<p>标签,是HTML中的一个块级元素,用于定义一段文本或内容。例如:<p>这个是一段文本</p>,其中,<p>和</p>分别表示段落的开始和结束。当浏览器渲染页面时,<p>标签会在页面上生成一个块,并自动在该块前后添加空白使得文本更易阅读和理解,有利于页面的可读性和维护性。
<p>标签是一个容器元素,在其中可以包含文本、图像、链接、表格、列表等其他任何元素。例如:<p><strong>这是加粗文本</strong>,这是普通文本</p>,其中,<p>标签内部包含了一个<strong>标签,用于加粗文本。
本步骤对多个p标签进行合并时,选择同等级的同胞元素进行合并。将多个同等级的p标签进行合并,减少p标签的个数。
合并p标签后,将p标签内部的其他行内元素标签提取出来合并到p标签的内容中,将其他行内元素标签全部去标签化。
p标签内部的其他行内元素标签用来实现文本内容的某种特定效果,在提取主体内容时可以忽略为文本内容设定的特定效果。其他行内标签包括但不限于span标签、em标签、b标签、u标签等。
<span>标签用来组合文档中的行内元素,在行内定义一个区域,即一行内可以被<span>划分成好几个区域,从而实现某种特定效果。
<em>标签,即为短语(emphasize)标签,用来呈现被强调的文本。<em>标签将需要强调的内容以斜体方式显示,把需要强调的文本和其他内容区别开来。
<b>标签,定义粗体的文本,告知浏览器将加b标签的文本以加粗样式呈现显示给浏览者。
<u>标签,下划线标签,告知浏览器将加u标签的文本加下划线样式呈现显示给浏览者。
<s>标签,删除线标签,告知浏览器将加s标签的文本内容加删除划线样式呈现显示给浏览者。
对网页结构进行调整,将多个p标签合并为一个,并去除p标签内部的其他凸显特定效果的行内元素标签,便于后续更好地显示网页页面的主体内容。
将节点内容类型为主体内容的节点合并为一个节点,获得合并后的节点树。将确定为主体内容的节点合并为一个节点,返回合并后的主体内容。将判断为主体内容的节点合并为一个节点并保存节点的文本、标签类型等信息。
步骤S204,根据所述合并后的节点树获得所述目标网页处理后的源代码文件。
本步骤用于根据合并后的节点树获得目标网页处理后的源代码文件。
获得目标网页处理后的源代码文件之后,所述方法还包括:若所述节点树中的节点表明所述目标网页内嵌套或分页有多个页面,则将所述多个页面的节点合并为一个节点,以将所述多个页面显示在所述目标网页上。
具体的,若节点树中的节点表明目标网页被分成了多个页面,则将所述多个页面的节点合并为一个节点,后续在新的网页页面显示时将多个页面合并为一个页面显示,不再进行分页显示,方便用户阅读。
若节点树中的节点表明目标网页内页面嵌套为多个页面,则忽略CSS(CascadingStyle Sheets,层叠样式表)样式,自动处理嵌套标签,提取节点内容,将所述多个页面显示在所述目标网页上。
页面嵌套,是两张图是不同的页面,但是两张网页页面的基本框架一样,每点击一次左边的导航栏改变的都是中间的内容区域,即共同的基本框架没有改变,改变的是中间的内容区域。
CSS(Cascading Style Sheets,层叠样式表)是一种用来表现HTML或XML等文件样式的计算机语言。CSS可以静态修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
本步骤用于根据合并后的节点树获得目标网页处理后的源代码文件,所述源代码文件中包含与文本相关的内容。
步骤S205:根据处理后的源代码文件显示网页页面。
本步骤用于根据处理后的源代码文件显示处理过的网页页面。通过本申请实施例提供的网页处理方法获得的网页页面,去除了无关内容的干扰,只保留了包含主体内容的部分,同时还可以将多个分页的网页页面显示在同一目标网页上,便于用户阅读,提升用户在浏览器中阅读文档的阅读体验。
至此,介绍了本申请第一实施例提供的网页处理的方法,首先获得目标网页的初始源代码文件和初始源代码文件对应的节点树,再根据节点树中节点的属性特征确定所述节点的节点内容类型,将确定为主体内容的节点合并为一个节点,获得合并后的节点树,根据合并后的节点树获得目标网页处理后的源代码文件,最后根据处理后的源代码文件显示网页页面。这样,根据节点树的节点属性特征确定节点的节点内容类型,将确定为主体内容的节点合并,获得目标网页处理后的源代码文件,根据处理后的源代码文件显示网页页面,处理后的源代码文件中包含主体内容的节点,去除了无关内容的节点,提供了精简的网页阅读模式,提升用户的阅读体验。
本申请第二实施例提供一种网页处理的装置,该装置与本申请第一实施例提供的网页处理的方法相对应,在此予以简单介绍。对本实施例实现方案的不明之处,可以参考第一实施例。
请参考图5,该图为本申请第二实施例提供的装置框图。
本申请第二实施例提供了一种网页处理的装置500,所述装置包括:初始源代码文件获得单元501,节点内容类型确定单元502,节点树获得单元503,处理后的源代码文件获得单元504,网页显示单元505。
初始源代码文件获得单元501,用于获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,所述节点树包括节点;
节点内容类型确定单元502,用于根据所述节点的属性特征确定节点内容类型为主体内容的节点;
节点树获得单元503,用于将所述节点内容类型为主体内容的节点合并为一个节点,获得合并后的节点树;
处理后的源代码文件获得单元504,用于根据所述合并后的节点树获得所述目标网页处理后的源代码文件;
网页显示单元505,用于根据所述处理后的源代码文件显示网页页面。
可选地,所述获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,包括:对所述初始源代码文件进行预处理,基于预处理后的所述初始源代码文件更新所述节点树。
可选地,所述对所述初始源代码文件进行预处理,包括:遍历所述初始源代码文件中的节点标签;根据所述初始源代码文件的节点标签识别目标网页的无关标签;根据预设的正则表达式去除无关标签及内容,获得预处理后的源代码文件。
可选地,所述基于预处理后的所述初始源代码文件更新节点树,包括:创建根节点;遍历所述预处理后的源代码文件的节点标签,将所述节点标签转换为节点;根据所述节点更新节点树。
可选地,所述节点的属性特征包括节点文本信息、节点标签类型信息、节点标签深度信息、节点链接信息中的一种或多种。
可选地,当所述节点的属性特征包括所述节点文本信息时,所述方法还包括:去除所述节点文本信息中包含的空白字符和/或换行符。
可选地,所述根据所述节点的属性特征确定节点内容类型为主体内容的节点,包括:确定节点的属性特征的综合得分策略;根据所述节点的属性特征和所述综合得分策略确定所述节点的综合得分;将所述节点的综合得分与所述节点分数阈值比较;若判断所述节点的综合得分大于所述节点分数阈值,则确定所述节点为主体内容的节点。
可选地,所述节点的综合得分与节点文本长度信息正相关;和/或,所述节点的综合得分与节点标签深度信息正相关;和/或,所述节点的综合得分与节点链接信息负相关。
可选地,所述根据所述节点的属性特征确定节点内容类型为主体内容的节点,包括:从所述节点的属性特征中确定第一属性特征;当所述第一属性特征大于第一属性特征预设阈值时,确定所述节点为节点内容类型为主体内容的节点。
可选地,所述确定节点内容类型为主体内容的节点后,所述方法还包括:若所述主体内容的节点包含多个文本节点标签,则将所述节点中的多个文本节点标签合并为一个文本节点标签;去除所述文本节点标签中的其余行内元素标签,获得处理后的主体内容的节点。
可选地,所述根据所述合并后的节点树获得所述目标网页处理后的源代码文件后,所述方法还包括:若所述节点树中的节点表明所述目标网页内嵌套或分页有多个页面,将所述多个页面的节点合并为一个节点,以将所述多个页面显示在所述目标网页上。
与本申请第一实施例的方法相对应的,本申请第三实施例还提供一种电子设备。如图6所示,图6为本申请第四实施例中提供的一种电子设备的示意图。该电子设备,包括:至少一个处理器601,至少一个通信接口602,至少一个存储器603和至少一个通信总线604;可选的,通信接口602可以为通信模块的接口,如GSM模块的接口;处理器601可能是处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器603可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。其中,存储器603存储有程序,处理器601调用存储器603所存储的程序,执行如下步骤:
获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,所述节点树包括节点;
根据所述节点的属性特征确定节点内容类型为主体内容的节点;
将所述节点内容类型为主体内容的节点合并为一个节点,获得合并后的节点树;
根据所述合并后的节点树获得所述目标网页处理后的源代码文件;
根据所述处理后的源代码文件显示网页页面。
本申请第四实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时,执行如下步骤:
获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,所述节点树包括节点;
根据所述节点的属性特征确定节点内容类型为主体内容的节点;
将所述节点内容类型为主体内容的节点合并为一个节点,获得合并后的节点树;
根据所述合并后的节点树获得所述目标网页处理后的源代码文件;
根据所述处理后的源代码文件显示网页页面。
需要说明的是,对于本申请第二实施例、第三实施例、第四实施例提供的装置、电子设备及计算机可读存储介质的详细描述可以参考对本申请第一实施例的相关描述,在此不做赘述。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
需要说明的是,本申请实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如,用户明确同意,对用户切实通知,等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此,本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (14)
1.一种网页处理的方法,其特征在于,包括:
获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,所述节点树包括节点;
根据所述节点的属性特征确定节点内容类型为主体内容的节点;
将所述节点内容类型为主体内容的节点合并为一个节点,获得合并后的节点树;
根据所述合并后的节点树获得所述目标网页处理后的源代码文件;
根据所述处理后的源代码文件显示网页页面。
2.根据权利要求1所述的方法,其特征在于,所述获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,包括:
对所述初始源代码文件进行预处理,基于预处理后的所述初始源代码文件更新所述节点树。
3.根据权利要求2所述的方法,其特征在于,所述对所述初始源代码文件进行预处理,包括:
遍历所述初始源代码文件中的节点标签;
根据所述初始源代码文件的节点标签识别目标网页的无关标签;
根据预设的正则表达式去除无关标签及内容,获得预处理后的源代码文件。
4.根据权利要求3所述的方法,其特征在于,所述基于预处理后的所述初始源代码文件更新节点树,包括:
创建根节点;
遍历所述预处理后的源代码文件的节点标签,将所述节点标签转换为节点;
根据所述节点更新节点树。
5.根据权利要求1所述的方法,其特征在于,所述节点的属性特征包括节点文本信息、节点标签类型信息、节点标签深度信息、节点链接信息中的一种或多种。
6.根据权利要求5所述的方法,其特征在于,当所述节点的属性特征包括所述节点文本信息时,所述方法还包括:
去除所述节点文本信息中包含的空白字符和/或换行符。
7.根据权利要求1所述的方法,其特征在于,所述根据所述节点的属性特征确定节点内容类型为主体内容的节点,包括:
确定节点的属性特征的综合得分策略;
根据所述节点的属性特征和所述综合得分策略确定所述节点的综合得分;
将所述节点的综合得分与所述节点分数阈值比较;
若判断所述节点的综合得分大于所述节点分数阈值,则确定所述节点为主体内容的节点。
8.根据权利要求7所述的方法,其特征在于,
所述节点的综合得分与节点文本长度信息正相关;
和/或,所述节点的综合得分与节点标签深度信息正相关;
和/或,所述节点的综合得分与节点链接信息负相关。
9.根据权利要求1所述的方法,其特征在于,所述根据所述节点的属性特征确定节点内容类型为主体内容的节点,包括:
从所述节点的属性特征中确定第一属性特征;
当所述第一属性特征大于第一属性特征预设阈值时,确定所述节点为节点内容类型为主体内容的节点。
10.根据权利要求1所述的方法,其特征在于,所述确定节点内容类型为主体内容的节点后,所述方法还包括:
若所述主体内容的节点包含多个文本节点标签,则将所述节点中的多个文本节点标签合并为一个文本节点标签;
去除所述文本节点标签中的其余行内元素标签,获得处理后的主体内容的节点。
11.根据权利要求1所述的方法,其特征在于,所述根据所述合并后的节点树获得所述目标网页处理后的源代码文件后,所述方法还包括:
若所述节点树中的节点表明所述目标网页内嵌套或分页有多个页面,将所述多个页面的节点合并为一个节点,以将所述多个页面显示在所述目标网页上。
12.一种网页处理的装置,其特征在于,包括:
初始源代码文件获得单元,用于获得目标网页的初始源代码文件和所述初始源代码文件对应的节点树,所述节点树包括节点;
节点内容类型确定单元,用于根据所述节点的属性特征确定节点内容类型为主体内容的节点;
节点树获得单元,用于将所述节点内容类型为主体内容的节点合并为一个节点,获得合并后的节点树;
处理后的源代码文件获得单元,用于根据所述合并后的节点树获得所述目标网页处理后的源代码文件;
网页显示单元,用于根据所述处理后的源代码文件显示网页页面。
13.一种电子设备,其特征在于,包括:处理器、存储器以及存储在所述存储器上并可在处理器上运行的计算机程序指令;所述处理器执行所述计算机程序指令时实现如上述权利要求1-11任一项所述的网页处理的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述权利要求1-11任一项所述的网页处理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311226955.4A CN117520678A (zh) | 2023-09-21 | 2023-09-21 | 一种网页处理的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311226955.4A CN117520678A (zh) | 2023-09-21 | 2023-09-21 | 一种网页处理的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117520678A true CN117520678A (zh) | 2024-02-06 |
Family
ID=89742686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311226955.4A Pending CN117520678A (zh) | 2023-09-21 | 2023-09-21 | 一种网页处理的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117520678A (zh) |
-
2023
- 2023-09-21 CN CN202311226955.4A patent/CN117520678A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10289649B2 (en) | Webpage advertisement interception method, device and browser | |
US9529780B2 (en) | Displaying content on a mobile device | |
US20150067476A1 (en) | Title and body extraction from web page | |
US9501581B2 (en) | Method and apparatus for webpage reading based on mobile terminal | |
CN106294658B (zh) | 网页快速展示方法和装置 | |
US9904936B2 (en) | Method and apparatus for identifying elements of a webpage in different viewports of sizes | |
US20130339840A1 (en) | System and method for logical chunking and restructuring websites | |
US20150143230A1 (en) | Method and device for displaying webpage contents in browser | |
JP6827116B2 (ja) | ウェブページのクラスタリング方法及び装置 | |
WO2011072434A1 (en) | System and method for web content extraction | |
US20150227276A1 (en) | Method and system for providing an interactive user guide on a webpage | |
US20220114269A1 (en) | Page processing method, electronic apparatus and non-transitory computer-readable storage medium | |
US20110258528A1 (en) | Method and system for removing chrome from a web page | |
WO2022179128A1 (zh) | 基于爬虫的数据抓取方法、装置、计算机设备及存储介质 | |
CN108595697A (zh) | 网页集成方法、装置及系统 | |
CN107590288B (zh) | 用于抽取网页图文块的方法和装置 | |
CN114021042A (zh) | 网页内容的提取方法、装置、计算机设备和存储介质 | |
JP5109759B2 (ja) | 情報処理装置およびその制御プログラム | |
CN108664511B (zh) | 获取网页信息方法和装置 | |
CN113806667B (zh) | 一种支持网页分类的方法和系统 | |
CN115391711A (zh) | 网页正文信息提取方法、装置、设备及介质 | |
US20210397663A1 (en) | Data reduction in a tree data structure for a wireframe | |
CN117520678A (zh) | 一种网页处理的方法、装置、电子设备及存储介质 | |
WO2018040807A1 (zh) | 一种前端辅助转码的浏览方法和装置 | |
US11514241B2 (en) | Method, apparatus, and computer-readable medium for transforming a hierarchical document object model to filter non-rendered elements |
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 |