对网页数据进行处理的方法、设备、浏览器和电子设备与流程

文档序号:11590438阅读:262来源:国知局

本发明涉及网页技术领域,更具体地,涉及一种用于对网页数据进行处理的方法、用于对网页数据进行处理的设备、浏览器和电子设备。



背景技术:

随着诸如手机的移动终端不断普及与发展,越来越多的人使用移动终端上的浏览器来访问互联网。随着诸如html5的网页技术的进步与普及,移动终端的网页内容展示也愈加多样化。

在网页的页面中,除了丰富的内容之外,还包括诸如广告信息的附加信息。通常,附加信息可以分成两类。一类附加信息例如是正常的广告内容,它虽然给用户的阅读带来一定不便,但是可以给页面提供商带来收入。另一类附加信息例如是恶意广告,它不但影响用户的阅读,而且很难关闭并在用户点击后指向恶意网站。

针对恶意广告,在现有技术的浏览器中提出了一些替换方案。通过所述替换方案,可以将网页页面内的广告信息替换成浏览器指定的广告内容。然而,目前的替换方案都是通过javascript脚本实现的。该javascript脚本对网页页面内容进行过滤,查找待替换的广告内容,通过网络请求新的广告内容,并在删除原始广告内容后插入新的广告内容。

通过javascript脚本实现的替换方案会产生一些问题。例如,动态注入javascript脚本会被页面拦截。此外,javascript脚本会带来安全隐患。另外,通过javascript脚本实现的替换方案每次都需要动态连接网络来获取新的广告内容。在用户通过

因此,需要一种新的对网页数据进行处理的技术方案来处理上面所述的至少一个问题。



技术实现要素:

本发明的一个目的是提供一种用于对网页数据进行处理的新技术方案。

根据本发明的第一方面,提供了一种用于对网页数据进行处理的方法,包括:对网页数据进行解析以获取文档对象模型节点树;在文档对象模型节点树中识别待删除的文档对象模型节点;删除所述待删除的文档对象模型节点以形成新文档对象模型节点树;以及对新文档对象模型节点树进行重排版。

优选地,所述方法还包括:在待删除的文档对象模型节点位置处插入替换文档对象模型节点,以形成所述新文档对象模型节点树。

优选地,所述方法还包括:对包括替换内容的替换网页数据进行解析,以生成与替换内容对应的替换文档对象模型节点。

优选地,所述替换文档对象模型节点被存储在缓存中。

优选地,所述方法还包括如下步骤中的至少一个:对替换网页数据进行更新;删除替换网页数据;以及更新用于获取替换网页数据的网络地址。

优选地,所述方法还包括:接收替换网页数据、数字证书和该替换网页数据的第一哈希值,其中第一哈希值使用与数字证书中的公钥对应的私钥被加密;以及使用数字证书中的公钥对加密的第一哈希值进行解密,以获得第一哈希值;计算所述替换网页数据的第二哈希值;以及基于第一哈希值和第二哈希值确定是否使用所述替换网页数据。

优选地,使用第一哈希值作为替换网页数据的文件名。

优选地,所述方法还包括:通过文件名验证替换网页数据的完整性。

根据本发明的第二方面,提供了一种用于对网页数据进行处理的设备,包括:用于对网页数据进行解析以获取文档对象模型节点树的装置;用于在文档对象模型节点树中识别待删除的文档对象模型节点的装置;用于删除所述待删除的文档对象模型节点以形成新文档对象模型节点树的装置;以及用于对新文档对象模型节点树进行重排版的装置。

优选地,所述设备还包括:用于在待删除的文档对象模型节点位置处插入替换文档对象模型节点以形成所述新文档对象模型节点树的装置。

优选地,所述设备还包括:用于对包括替换内容的替换网页数据进行解析以生成与替换内容对应的替换文档对象模型节点的装置。

优选地,所述替换文档对象模型节点被存储在缓存中。

优选地,所述设备还包括如下装置中的至少一个:用于对替换网页数据进行更新的装置;用于删除替换网页数据的装置;以及用于更新用于获取替换网页数据的网络地址的装置。

优选地,所述设备还包括:用于接收替换网页数据、数字证书和该替换网页数据的第一哈希值的装置,其中第一哈希值使用与数字证书中的公钥对应的私钥被加密;以及用于使用数字证书中的公钥对加密的第一哈希值进行解密的装置,以获得第一哈希值;用于计算所述替换网页数据的第二哈希值的装置;以及用于基于第一哈希值和第二哈希值确定是否使用所述替换网页数据的装置。

优选地,使用第一哈希值作为替换网页数据的文件名。

优选地,所述设备还包括:用于通过文件名验证替换网页数据的完整性的装置。

根据本发明的第三方面,提供了一种浏览器,包括根据本发明的用于对网页数据进行处理的设备。

根据本发明的第四方面,提供了一种浏览器,被设计成用于执行如下操作:对网页数据进行解析以获取文档对象模型节点树;在文档对象模型节点树中识别待删除的文档对象模型节点;删除所述待删除的文档对象模型节点以形成新文档对象模型节点树;以及对新文档对象模型节点树进行重排版。

根据本发明的第五方面,提供了一种电子设备,包括根据本发明的浏览器。

根据本发明的第六方面,提供了一种电子设备,包括存储器和处理器,其中,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行根据本发明的方法。

通过本发明的一个实施例,可以更加高效地去除诸如恶意广告的附加信息。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实 施例,并且连同其说明一起用于解释本发明的原理。

图1是根据本发明的一个实施例的用于对网页数据进行处理的方法的流程图。

图2是根据本发明的另一个实施例的浏览器的示意性框图。

图3是根据本发明的又一个实施例的电子设备的示意性框图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

下面,参照附图描述根据本发明的各个实施例和例子。

<方法>

当用户通过浏览器浏览网页时,可以通过根据本发明的实施例的方法,从网页页面上去除附件信息。所述附加信息例如是广告信息,尤其是恶意广告信息。

具体来说,图1示出了根据本发明的一个实施例的用于对网页数据进行处理的方法的流程图。

在现有技术中,当浏览器接收到网页数据之后,浏览器对网页数据进行排版,以生成文档对象模型(dom,documentobjectmodel)节点树, 用于显示。在这个实施例中,在现有技术的文档对象模型节点树的基础上进行改进。

如图1所示,在步骤s1100,对网页数据进行解析以获取文档对象模型节点树。

在步骤s1200,在文档对象模型节点树中识别待删除的文档对象模型节点。

例如,待删除的文档对象模型节点可以是恶意广告的节点。浏览器可以在解析网页数据时启动恶意广告识别模块。例如,在浏览器的解析过程中,可以基于事先定义的恶意广告规则,对节点属性、其对应的样式等网页数据内容进行查找,以确定恶意广告的节点。对恶意广告的节点进行标记。恶意广告识别模块可以是现有技术的,因此,在这里不进行详细描述。

在步骤s1300,删除所述待删除的文档对象模型节点以形成新文档对象模型节点树。

在这里,可以直接删除所述待删除的文档对象模型节点。

在另一个实施例中,在删除所述节点的基础上,还可以使用其他文档对象模型节点替换所删除的节点。在这里,在待删除的文档对象模型节点位置处插入替换文档对象模型节点,以形成所述新文档对象模型节点树。例如,可以将替换文档对象模型节点插入在所述待删除的文档对象模型节点之前或之后,然后删除该所述待删除的文档对象模型节点。可选地,还可以在删除所述待删除的文档对象模型节点之后,在所删除的节点的位置插入替换文档对象模型节点。

例如,替换内容可以是以网页数据的形式从网络上下载的。可以通过对包括替换内容的替换网页数据进行解析,来生成与替换内容对应的替换文档对象模型节点,以用于替换所删除的节点。

在一个例子中,可以将所生成的替换文档对象模型节点存储在缓存中。这样,在更加快速地使用缓存中的节点来替换所删除的节点。

在另外一个实施例中,还可以对包含替换内容的替换网页数据执行如下操作中的至少一项:更新替换网页数据;删除替换网页数据;以及更新用于获取替换网页数据的网络地址。

当从网络接收所述替换网页数据时可能会存在安全问题。因此,在另外一个实施例中,还提供了一种安全接收替换网页数据的方式。在这个实施例中,接收替换网页数据、数字证书和该替换网页数据的第一哈希值。 其中第一哈希值使用与数字证书中的公钥对应的私钥被加密。使用数字证书中的公钥对加密的第一哈希值进行解密,以获得第一哈希值。计算所述替换网页数据的第二哈希值。基于第一哈希值和第二哈希值确定是否使用所述替换网页数据。在这里,可以通过数字证书验证发送替换网页数据的发送方的身份,以防止接收来自恶意第三方的数据。通过使用哈希值进行验证,以确保所使用的数据是来自由数字证书所声明的发送方的。通过这种方式可以增加网络安全性,防止恶意第三方通过替换网页数据损害用户的利益。

在通过网络接收替换网页数据时,可能会出现不同替换网页数据文件具有相同文件名称的情况。在这种情况下,这两个文件可能会产生冲突。例如,在后的文件可能会覆盖在先的文件,从而造成数据丢失。

此外,还可能出现包含相同内容的两个贴图图片包文件具有不同文件名称的情况。这可能会在用户的设备中产生过多的重复内容,并形成垃圾文件,而占用用户设备的存储资源。

因此,在另一个实施例中,使用所述第一哈希值(即,替换网页数据的哈希值)作为替换网页数据的文件名。通过这种方式,可以在一定程度上避免上述文件冲突和/或垃圾文件。

此外,在文件的传输和/或使用过程中,经常会发生文件损坏的情况。在有些情况下,如果浏览器调用了损坏的文件,可能造成该浏览器的卡顿和/或崩溃。

因此,在另一个实施例中,还可以通过所述文件名(即,第一替换网页数据的哈希值)验证替换网页数据的完整性。当验证所述替换网页数据是完整的时候,使用所述替换网页数据来实现根据本发明的技术方案。

在步骤s1400,对新文档对象模型节点树进行重排版。

根据本发明的实施例,在浏览器解析网页数据的过程中,直接删除诸如广告节点的待删除的文档对象模型节点或使用替换文档对象模型节点来替换所述待删除的文档对象模型节点。在所述实施例的技术方案中,不通过javascript脚本或插件进行所述删除或替换。因此,根据所述实施例的方案更加高效。

此外,由于不使用javascript脚本或插件,所述实施例中的方案不易被网页页面屏蔽。

另外,进行替换的替换内容可以事先由浏览器获取、解析、排版并被 保存在缓存中的。替换操作仅涉及拷贝和节点插入操作,而不需要实时地联网获取所述替换内容。因此,根据所述实施例的方案更加快速。

<设备>

本领域技术人员应当理解,在电子技术领域中,可以通过软件、硬件以及软件和硬件结合的方式,将上述方法体现在产品中。本领域技术人员很容易基于上面公开的方法,产生一种用于对网页数据进行处理的设备。该设备包括:用于对网页数据进行解析以获取文档对象模型节点树的装置;用于在文档对象模型节点树中识别待删除的文档对象模型节点的装置;用于删除所述待删除的文档对象模型节点以形成新文档对象模型节点树的装置;以及用于对新文档对象模型节点树进行重排版的装置。

在一个例子中,所述设备还包括:用于在待删除的文档对象模型节点位置处插入替换文档对象模型节点以形成所述新文档对象模型节点树的装置。

在另一个例子中,所述设备还包括:用于对包括替换内容的替换网页数据进行解析以生成与替换内容对应的替换文档对象模型节点的装置。

在另一个例子中,所述替换文档对象模型节点被存储在缓存中。

在另一个例子中,所述设备还包括如下装置中的至少一个:用于对替换网页数据进行更新的装置;用于删除替换网页数据的装置;以及用于更新用于获取替换网页数据的网络地址的装置。

在另一个例子中,所述设备还包括:用于接收替换网页数据、数字证书和该替换网页数据的第一哈希值的装置,其中第一哈希值使用与数字证书中的公钥对应的私钥被加密;以及用于使用数字证书中的公钥对加密的第一哈希值进行解密的装置,以获得第一哈希值;用于计算所述替换网页数据的第二哈希值的装置;以及用于基于第一哈希值和第二哈希值确定是否使用所述替换网页数据的装置。

在另一个例子中,使用第一哈希值作为替换网页数据的文件名。

在另一个例子中,所述设备还包括:用于通过文件名替换网页数据的完整性的装置。

本领域技术人员应当明白,可以通过各种方式来实现上述装置。例如,可以通过指令配置处理器来实现上述装置。例如,可以将指令存储在rom中,并且当启动设备时,将指令从rom读取到可编程器件中来实现上述装 置。例如,可以将上述装置固化到专用器件(例如asic)中。可以将上述装置分成相互独立的单元,或者可以将它们合并在一起实现。上述装置可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。对于本领域技术人员来说,这些实施方式都是等价的。

<浏览器>

上面描述的用于对网页数据进行处理的设备可以是一个独立的设备(例如,客户端中的应用),也可以被集成在浏览器中,成为浏览器的一部分。在这种情况下,所述浏览器能够更加高效地去除诸如恶意广告的附加信息。本领域技术人员应当理解,随着技术的发展,浏览器可以是一个单独的应用程序,例如,ie浏览器、chrome浏览器等,或者也可以指的是集成了浏览器功能的应用程序,例如微博应用程序、微信应用程序等。

图2示出了根据本发明的另一个实施例的浏览器的示意性框图。

一般来说,浏览器从架构上可以分为两个部分,即内核和外壳。浏览器内核负责对网页语法的解释(如html、javascript)并渲染(显示)网页,即浏览器通过内核对网页进行解析和渲染。浏览器外壳主要处理浏览器外观界面、操控体验。在图2中,浏览器2000包括内核2010和外壳2020。浏览器2000还包括网页处理设备2030。网页处理设备2030可以是根据本发明的用于对网页数据进行处理的设备。尽管为了清楚起见,在图2中,网页处理设备2030在外壳2020和内核2010之外,但是,本领域技术人员应当理解,网页处理设备2030可以位于外壳2020或内核2010内。

另一方面,本领域技术人员公知的是,随着诸如大规模集成电路技术的电子信息技术的发展和软件硬件化的趋势,要明确划分计算机系统软、硬件界限已经显得比较困难了。因为,任何操作可以软件来实现,也可以由应当来实现。任何指令的执行可以由硬件完成,同样也可以由软件来完成。对于某一机器功能采用硬件实现方案还是软件实现方案,取决于价格、速度、可靠性、存储容量、变更周期等非技术性因素。因此,对于电子信息技术领域的普通技术人员来说,更为直接和清楚地描述一个技术方案的方式是描述该方案中的各个操作。在知道所要执行的操作的情况下,本领域技术人员可以基于对所述非技术性因素的考虑直接设计出期望的产品。 从这个方面来说,在这个实施例中,还提供了一种浏览器,该浏览器被设计成用于执行根据本发明的方法中的各个操作。例如,该浏览器被设计成用于执行如下操作:对网页数据进行解析以获取文档对象模型节点树;在文档对象模型节点树中识别待删除的文档对象模型节点;删除所述待删除的文档对象模型节点以形成新文档对象模型节点树;以及对新文档对象模型节点树进行重排版。

<电子设备>

可以在电子设备中实现根据本发明的各个实施例,从而使得该电子设备能够更加高效地去除诸如恶意广告的附加信息。所述电子设备例如是手机、ipod等。

在一个方面,电子设备可以包括上面所述的浏览器。

在另一个方面,图3示出了根据本发明的实施例的电子设备的示意性框图。

如图3所示,电子设备3000可以包括处理器3010、存储器3020、接口装置3030、通信装置3040、显示装置3050、输入装置3060、扬声器3070、麦克风3080,等等。

处理器3010例如可以是中央处理器cpu、微处理器mcu等。存储器3020例如包括rom(只读存储器)、ram(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置3030例如包括usb接口、耳机接口等。

通信装置3040例如能够进行有有线或无线通信。

显示装置3050例如是液晶显示屏、触摸显示屏等。输入装置3060例如可以包括触摸屏、键盘等。用户可以通过扬声器3070和麦克风3080输入/输出语音信息。

图3所示的电子设备仅是解释性的,并且决不是为了要限制本发明、其应用或用途。

在这个实施例中,所述存储器3020用于存储指令,所述指令用于控制所述处理器3010进行操作以执行图1所示的用于对网页数据进行处理的方法。本领域技术人员应当理解,尽管在图3中示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,处理器3010和存储装置3020等。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器 进行操作,这是本领域公知,故在此不再详细描述。

本发明可以是设备、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一 个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的 可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1