CN107807927B - 基于下发规则的页面解析方法、装置、客户端设备及系统 - Google Patents

基于下发规则的页面解析方法、装置、客户端设备及系统 Download PDF

Info

Publication number
CN107807927B
CN107807927B CN201610811199.5A CN201610811199A CN107807927B CN 107807927 B CN107807927 B CN 107807927B CN 201610811199 A CN201610811199 A CN 201610811199A CN 107807927 B CN107807927 B CN 107807927B
Authority
CN
China
Prior art keywords
rule
page
dom tree
action
target page
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
CN201610811199.5A
Other languages
English (en)
Other versions
CN107807927A (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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN201610811199.5A priority Critical patent/CN107807927B/zh
Publication of CN107807927A publication Critical patent/CN107807927A/zh
Application granted granted Critical
Publication of CN107807927B publication Critical patent/CN107807927B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation

Abstract

提出了一种基于规则的页面解析方法、装置、客户端设备和系统。一种页面解析方法包括基于针对目标页面的规则,定位所述目标页面的DOM树的特定范围;以及当DOM树构造到所述范围时,根据所述规则对所述范围执行动作。也可以是首先定位特定上下文,在监听上下文构造期间定位特定节点,并对该特定节点执行动作。可由规则服务器负责规则的制定、下发和更新。由此,使用下发的规则在页面解析期间实现DOM树修改,能够实现对页面进行及时准确且顺畅的修改并消除网页端硬编码操作节点的需要。

Description

基于下发规则的页面解析方法、装置、客户端设备及系统
技术领域
本发明涉及网页处理,尤其涉及一种基于规则的页面解析方法、装置、相应的客户端设备及系统。
背景技术
随着互联网的兴起和发展,以及智能移动终端的普及,人们花在网页浏览上的时间也越来越多。用户在浏览网页时期望更为顺畅的浏览体验。另一方面,作为页面提供方或是浏览器厂商也致力于以更高的效率为用户提供上述体验。
在前端开发中,开发人员经常需要对DOM节点进行操作,比如,设置元素样式,隐藏或显示某个元素,页面元素替换(如延迟加载等),以便提供更符合用户需求的页面显示。DOM节点操作的时机通常是在页面加载完成之后(即,在DOMContentLoaded事件之后)。由于DOM树此时已经构建完成,并且HTML文档不会等待样式文件、图片文件和子框架页面的加载,因此这类的DOM节点操作往往需要硬编码来实现对应的操作,而且操作的节点同样需要以某种形式硬编码到代码中。图1是用于说明现有技术的一个例子。图中示出了一个单页面模式的导航条。前端需要根据路由决定哪个选项卡应该高亮。在此例中,如图中灰框所示,浏览器程序根据例如www.example.com/game的URL决定高亮显示“游戏分类”选项卡。
对于上述示例单页面模式,用户有两种方式实现上述操作:
1、在渲染前计算出当前所在页面,并在模板中设置选中样式;
2、模板渲染完成后,计算当前页面,再设置当前元素选中样式。
这两种方案都有明显的缺陷。方案1在模板中渲染选中样式,需要等待获取路由完成后,才能进行模板渲染。方案2则会在构造DOM树完成后,动态设置选项卡,此时会有明显闪烁。而且这两个方案都需要通过硬编码实现选项卡高亮功能,代码耦合度高。
因此,需要一种新的DOM节点操作方案,由此实现页面的顺畅浏览并且消除对前端硬编码操作节点的需要。
发明内容
为了解决上述的至少一个问题,本发明提出了一种新的DOM节点操作方案,该方案能够在页面解析阶段根据下发的规则实现对DOM树的修改,由此实现页面的顺畅浏览并且消除了对前端硬编码操作节点的需要。
根据本发明的一个方面,提出了一种页面解析方法,包括:基于针对目标页面的规则,定位所述目标页面的DOM树的特定范围;以及当DOM树构造到所述范围时,根据所述规则对所述范围执行动作。
这样,就能够根据规则对DOM树的特定范围执行动作,由此实现页面解析阶段对DOM树的修改,以确保页面显示的平顺并且使得网页编写者免于将节点操作的硬编码。
优选地,所述规则包括位置特征和动作特征,其中基于针对目标页面的规则,定位所述目标页面的DOM树的特定范围包括:基于所述规则的位置特征,定位所述DOM树中的特定节点,并且其中当DOM树构造到所述范围时,根据所述规则对所述范围执行动作包括:当DOM树构造到所述节点时,对所述节点执行由所述动作特征规定的动作。
由此,通过将特定范围进一步限定为节点,能够更为精确对DOM树的枝叶进行操作。
优选地,所述规则包括上下文特征、位置特征和动作特征,其中基于针对目标页面的规则,定位所述目标页面的DOM树的特定范围包括:基于所述规则的上下文特征,定位所述DOM树中的特定上下文,并且其中当DOM树构造到所述范围时,根据所述规则对所述范围执行动作包括:当DOM树构造到所述上下文时,根据所述位置特征定位所述上下文中的特定节点,并且对所述特定节点执行由所述动作特征规定的动作。
由此,通过定位上下文以及对上下文中特定节点的监听,能够更为高效准确地实现对特定节点的定位及动作。
优选地,所述规则还包括动作属性特征,用于进一步规定需要执行动作的动作属性。由此,能够进一步细化具体的修改操作。
优选地,所述页面解析方法还可以包括:在构造到DOM树的所述特定范围之前,从规则服务器获取或更新所述规则。
由此,通过规则服务器对规则进行维护和更新,就能够更为准确地对目标页面进行DOM树操作。
优选地,规则是按照域名从所述规则服务器获取或更新的规则。由此实现规则制定的准确性和效率之间的平衡。
优选地,针对目标页面存在多个规则,并且针对所述目标页面逐一实施每个规则。由此就能够应对同一页面内需要多处DOM树修改的情况。
优选地,所述页面解析方法还可以包括:当在DOM树构造期间超出监听时间无法定位所述特定范围时,停止实施所述规则。由此能够避免不必要地监听对处理资源的浪费。
根据本发明的另一个方面,提出了一种页面解析规则下发方法,包括:根据目标页面的结构,制定或更新针对所述目标页面的DOM树修改规则;向访问所述目标页面的客户端设备下发所述DOM树修改规则。
这样,就能够通过一个统一的规则服务器高效地实现对各个客户端上页面显示的修改。
优选地,所述规则包括位置特征和动作特征,所述位置特征规定所述DOM树的特定位置,所述动作特征规定对所述特定位置执行的特定动作。由此方便对DOM树中需要操作的位置的定位。
优选地,针对所述目标网页的DOM树修改规则还包括上下文特征,用于规定要监听的所述DOM树的特定上下文。由此将定位分为上下文和节点两步,以便更为高效地找出需要操作的节点。
优选地,所述规则还包括动作属性特征,用于进一步规定要执行的特定动作的动作属性。
优选地,所述规则是按照域名制定或更新的规则,针对特定域名存在多个规则,并且针对特定域名下的所述目标页面逐一实施每个规则。
根据本发明的再一个方面,提出了一种页面解析装置,包括:范围定位单元,用于基于针对目标页面的规则定位所述目标页面的DOM树的特定范围;以及动作执行单元,用于当DOM树构造到所述范围时根据所述规则对所述范围执行动作。
在另一个发明,一种页面解析装置可以包括上下文定位单元,用于基于针对目标页面的规则定位所述目标页面的DOM树的特定上下文;节点定位单元,用于当DOM树构造到所述上下文时根据所述位置特征定位所述上下文中的特定节点;以及动作执行单元,用于对所述特定节点执行由所述动作特征规定的动作
优选地,上述两种装置都可以包括规则获取/更新单元,用于在构造到DOM树的所述特定范围之前从规则服务器获取或更新所述规则。
优选地,上述两种装置都可以包括超时监听单元,用于当在DOM树构造期间超出监听时间无法定位所述特定范围时停止实施所述规则。
根据本发明的一个方面,提出了一种客户端设备,包括:通信装置,用于与外界通信;存储器,用于存储信息;以及与所述通信装置和所述存储器相连接的处理器,所述处理器用于:基于针对目标页面的规则定位所述目标页面的DOM树的特定范围,其中所述规则是在构造到DOM树的所述特定范围之前由所述通信装置从规则服务器获取或更新;以及当DOM树构造到所述范围时根据所述规则对所述范围执行动作。
在另一个发明,一种客户端设备可以包括:通信装置,用于与外界通信,并在针对目标页面的DOM树构造到特定上下文之前从规则服务器获取或更新DOM树修改规则,所述规则包括上下文特征,位置特征和动作特征;存储器,用于存储信息;以及与所述通信装置和所述存储器相连接的处理器,所述处理器用于:基于所述上下文特征,定位所述目标页面的DOM树的特定上下文;当DOM树构造到所述上下文时,根据所述位置特征定位所述上下文中的特定节点;以及对所述特定节点执行由所述动作特征规定的动作
根据本发明的再一个方面,提出了一种基于规则下发的页面解析系统,所述系统包括规则服务器以及如上所述的客户端设备,并且其中所述规则服务器包括处理器用于:根据目标页面的页面结构,制定或更新针对所述目标页面的DOM树修改规则;向访问所述目标页面的客户端设备下发所述DOM树修改规则。
利用本发明的基于下发规则的页面解析方案,能够在页面解析阶段实现DOM节点操作,由此优化页面显示,并降低网页前端硬编码节点操作的需求。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是用于说明现有技术的一个例子。
图2示出了根据本发明一个实施例的页面解析方法。
图3示出了根据本发明另一个实施例的页面解析方法。
图4示出了根据本发明再一个实施例的页面解析方法。
图5示出了根据本发明又一个实施例的页面解析方法。
图6示出了根据本发明一个实施例的DOM树修改规则下发方法。
图7示出了根据本发明一个实施例的页面解析装置。
图8示出了根据本发明另一个实施例的页面解析装置。
图9示出了根据本发明一个实施例的客户端设备。
图10示出了根据本发明一个实施例的基于规则下发的页面解析系统。
图11示出了应用本发明技术方案的一个效果例。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
随着互联网的兴起和发展,网页浏览的范围越来越广,显示场景也越来越多。对于需要DOM节点操作的场景,现有技术都是在DOM树构造实际完成之后再通过对页面的硬编码实现对DOM节点的操作。这样不仅会降低显示效率还可能会引起闪屏或视觉差。
为此,本发明提供了一种基于规则协议的实时更新元素解决方案。不同于现有技术中客户端直接从页面浏览器获取页面内容,并根据页面内容内嵌的硬编码进行节点操作,本发明引入了用于统一规则生成、管理、更新和下发的规则服务器。客户端通过从规则服务器及时获取针对目标页面或域名的规则协议,对从页面服务器获取的页面内容在页面解析阶段就进行DOM节点的实时修改,由此避免闪屏或者视觉差;同时,由于更新的内容与页面代码解耦,替代传统硬编码模式,因此适用的场景更为广泛。
【实施例】
图2示出了根据本发明一个实施例的页面解析方法。在步骤S210,基于针对目标页面的规则,定位所述目标页面的DOM树的特定范围。在步骤S220,当DOM树构造到所述范围时,根据所述规则对所述范围执行动作。由此,通过已有的规则,在页面解析阶段实现对DOM树的实时修改操作。
在一个实施例中,上述页面解析规则可以是DOM树修改规则。在一个实施例中,所述规则可以包括位置特征和动作特征。位置特征用于指示目标页面DOM树中的特定范围,例如特定的节点。动作特征则用于指示对上述特定范围(例如,特定节点)做要实施的动作。优选地,步骤S210可以是基于所述规则的位置特征,定位所述DOM树中的特定范围,例如特定节点。而步骤S220可以是当DOM树构造到特定节点时,对所述节点执行由所述动作特征规定的动作。
在另一个实施例中,规则可以包括上下文特征、位置特征和动作特征。上下文特征用于指定需要监听DOM树变化的上下文。位置特征用于指示DOM树中的特定节点。动作特征则用于指示对上述特定节点做要实施的动作。在此,步骤S210可以是基于所述规则的上下文特征,定位所述DOM树中的特定上下文。步骤S220则可以包括当DOM树构造到所述上下文时,根据所述位置特征定位所述上下文中的特定节点,并且对所述特定节点执行由所述动作特征规定的动作。在实际操作中,可以是当DOM树构造到规则规定的所述上下文时,启动监听,并且根据监听定位由位置规则规定的特定节点。随后在对上述节点进行由动作特征所规定的动作。
在上述任一实施例中,上下文特征例如可以默认为是HTML页面的body节点。由此,需要监听的就是DOM树中的body节点及其子孙节点。位置特征例如可以是同样适用于HTML标记页面的、用于位置确定的XPath。动作特征用于规定动作类型,例如可以包括节点的插入、修改和删除。在一个优选实施例中,规则还可以包括动作属性特征,用于进一步规定需要执行动作的动作属性。例如,对于插入动作,可以通过动作属性特征进一步限定是在特定节点之前还是之后插入新节点,以及该新节点的具体属性。另外,本领域技术人员应该理解的是,规则的各个特征不限于上述的示例,而可以是适于对DOM树进行修改的其他具体特征。
图3示出了根据本发明另一个实施例的页面解析方法。步骤S310和步骤S320对应于图2中的步骤S210和步骤S220,在此不做赘述。在步骤305,可以在构造到特定范围之前,从规则服务器获取或更新所述规则。由于页面解析规则是从规则服务器获取的,使得对目标页面具体修改实际由规则服务器决定。通过维护一个独立的规则服务器,能够将节点操作从页面程序中解耦出来,程序只需专心处理业务实现,只要调用前端基础服务(例如,客户端上的浏览器程序或是含有页面显示模块的其他App)即可实现DOM节点修改。另外,同样由于规则存放于规则服务器,因此可以随时更新服务器上的规则内容,减少发包的流程,从而提高发布效率。优选地,在一个实施例中,所述规则是按照域名从所述规则服务器获取或更新的规则。由于相同的域名下通常具有相同的页面结构,因此规则服务器可以根据域名存放不同的规则。在这里,域名指代网址,例如sina.com。因此可以将例如sina.com/sports以及sina.com/family看做是具有相同的域名。可以针对相同的域名(例如,针对同一域名下的目标页面)设定多个规则,这在一个页面中存在多个需要修改的范围或是节点时尤为适用。而在构造所述页面的DOM树时,则可以逐一实施多个规则中的每一个,以便实现对节点的期望修改。另外,可以理解的是,可以在相同域名和相同页面之间选择合适的层级,例如,相同的选项卡,由此作为制定、存储、更新和下发规则的分类。
图4示出了根据本发明再一个实施例的DOM树更新方法。步骤S410和步骤S420对应于图2中的步骤S210和步骤S220,在此不做赘述。在步骤S415,判断是否在DOM树构造期间超出监听时间无法定位所述特定范围。倘若是,则可以在步骤S430停止实施所述规则。倘若不是,即在监听时间期满之前定位到特定范围,就能够执行对特定范围执行特定动作的步骤S420。该优选实施例尤其适用于规则包括上下文特征的情况下。图5是根据本发明又一个实施例的DOM树更新方法。与图4所示方法不同的是,首先在步骤S510,基于目标页面的规则,尤其是规则中的上下文特征,定位该目标页面DOM树的特定上下文。随后在步骤S515进行是否超出监听时间的判断。如果是,则在步骤S530停止实施实施规则。如果不是,则在步骤S520,当DOM树构造到所述上下文时,根据所述位置特征定位所述上下文中的特定节点。随后在步骤S525,对特定节点执行由所述动作特征规定的动作。
以上参考图2-5描述了在客户端侧执行的根据本发明的页面解析方法。虽然在图中没有具体示出,但本领域技术人员应该了解的是,客户端还可以结合进行常规的页面解析处理,即,对从网页服务器或是中间服务器获取目标页面的页面内容,并对获取的页面内容进行解析,在构造该页面内容的DOM树时,根据规则(例如,从规则服务器获取的规则)实时修改DOM树。用于执行本发明的解析方法可以是客户端上的浏览器应用,也可以是具有浏览功能模块的其他应用,例如具有推送文章浏览功能的即时聊天应用等。
如下将参考图6描述对应的规则服务器侧的动作。图6示出了根据本发明一个实施例的页面解析规则下发方法。在步骤S610,根据目标页面的结构,制定或更新针对所述目标页面的页面解析规则。在步骤S620,向访问所述目标页面的客户端设备下发所述页面解析修改规则。页面解析规则可以是DOM树修改规则。根据目标页面的结构制定规则例如可以根据当前页面的结构,选择需要更改的DOM树节点,比如删除内嵌的JavaScript广告、及时进行路由跳转等,并由此制定指向特定节点并规定特定动作的规则。在实际应用中,由于同一域名的页面结构类似,可以按照域名来制定规则,并且可以按照域名存放其下的多个规则(如果有的话)。在其他实施例中,可以不仅对相同域名,而是对具有相同页面结构的同一类型的站点(例如,在线小说阅读站点、门户站点等)应用相同的规则,或是依据本领域技术人员能够想到的其他限制。
无论是按照域名、页面、或是同类站点存放的规则,在其所针对的页面结构发生变化时,都可以及时更改存放在规则服务器上的规则,以便及时下发给客户端,使得客户端能够准确地对目标页面进行操作。相应的客户端浏览器可以在DOM树构造之前,尤其是DOM树的特定范围(例如,特定上下文或是节点)构造之前,获取存放在规则服务器上的规则。例如,客户端可以预先获取规则,或是在获取目标页面内容时一并获取规则。另外,如果针对目标页面存在多个规则,则可以在目标页面DOM树构造时,逐一实施每个规则。例如,可以按照一定的顺序(例如,根据各个规则规定的位置特征在同一颗DOM树中的位置顺序等)实施规则,并且每个规则都可以具备相同或不同的监听时间。
与以上针对页面解析方法相类似地,该页面解析规则可以是DOM树修改或更新规则,并且可以包括位置特征和动作特征。位置特征规定所述DOM树的特定位置,动作特征规定对所述特定位置执行的特定动作。优选地,规则还可以包括上下文特征,用于规定要监听的所述DOM树的特定上下文。优选地,规则还可以包括动作属性特征,用于进一步规定要执行的特定动作的动作属性。
以上论述了基于规则下发修改DOM树的方法,如下将结合图7-10描述用于实现上述方法的相应装置以及硬件设备和系统。
图7示出了根据本发明一个实施例的页面解析装置700。页面解析装置700可以包括范围定位单元710和动作执行单元720。范围定位单元710用于基于针对目标页面的规则定位所述目标页面的DOM树的特定范围。动作执行单元720用于当DOM树构造到所述范围时根据所述规则对所述范围执行动作。优选地,上述规则可以包括规定具体节点位置的位置特征,以及规定要执行动作的动作特征。因此,范围定位单元710优选地可以是节点定位单元,以基于针对所述位置特征定位所述目标页面的DOM树的特定节点。动作执行单元720则相应地在DOM树构造到所述节点时根据动作特征对所述节点执行动作。
图8示出了根据本发明另一个实施例的页面解析装置800。与图7所述装置不同的,图8的规则包括上下文特征。相应地,页面解析装置800包括上下文定位单元810、节点定位单元820以及动作执行单元825。上下文定位单元810基于针对目标页面的规则定位所述目标页面的DOM树的特定上下文。节点定位单元820会在DOM树构造到所述上下文时根据所述位置特征定位所述上下文中的特定节点。动作执行单元825则可以对所述特定节点执行由所述动作特征规定的动作。类似地,所述规则可以包括位置特征和动作特征,使得节点定位单元820能够根据位置特征定位特定节点,并且使得动作执行单元825根据动作特征执行动作。
在一个实施例中,图7和图8的页面解析装置还可以优选地包括规则获取/更新单元,在图中分别编号为730和830。规则获取/更新单元在构造到DOM树的所述特定范围之前从规则服务器获取或更新所述规则。页面解析装置还可以优选地包括超时监听单元,在图中分别编号为740和840。超时监听单元可以当在DOM树构造期间超出监听时间无法定位所述特定范围时停止实施所述规则。另外,对于图7和图8的情况,所述规则也可以包括进一步规定动作属性的动作属性特征。
图7和图8示出了可以实现如上结合图2-5阐述的页面解析方法的模块。上述模块可以位于客户端设备中,优选地,可以位于客户端设备上的浏览器应用中,或是具有页面显示功能的其他应用中。客户端设备也可以执行本发明的修改方法。
图9示出了根据本发明一个实施例的客户端设备900。该客户端设备900包括通信装置910、存储器920以及与与通信装置910和存储器920相连接的处理器930。可以理解的是,客户端设备900还可以包括用于实现其正常功能的其他装置,例如输入输出装置和显示装置等等。在此不对这些装置的加以描述以免混淆本发明的主旨。
通信装置910用于与外界通信,例如,可以从页面服务器获取目标页面的页面信息,并从规则服务器获取针对该目标页面的一个或多个规则信息。存储器920用于存储信息,例如可以存储获取的页面信息和规则信息。处理器930可以执行结合图2-5所述的修改方法。在一个实施例中,处理器930用于:基于针对目标页面的规则定位所述目标页面的DOM树的特定范围,其中所述规则是在构造到DOM树的所述特定范围之前由所述通信装置910从规则服务器获取或更新的;以及当DOM树构造到所述范围时根据所述规则对所述范围执行动作。优选地,所述范围可以是DOM树的特定节点。
在另一个实施例中,可以先定位特定上下文,再定位上下文中的特定节点,并对节点执行规则规定的动作,优选包括由动作属性规定的动作。具体地,用于与外界通信的通信装置910可以在针对目标页面的DOM树构造到特定上下文之前从规则服务器获取或更新DOM树修改规则,所述规则包括上下文特征,位置特征和动作特征。处理器930则可用于:基于所述上下文特征,定位所述目标页面的DOM树的特定上下文;当DOM树构造到所述上下文时,根据所述位置特征定位所述上下文中的特定节点;以及对所述特定节点执行由所述动作特征规定的动作。
如上结合图7-9阐述了客户端侧的模块和硬件。可以理解的是,规则服务器端也可以具有相应地模块和硬件,用以执行结合图6及其优选实施例描述的规则下发方法。上述客户端和规则服务器可以构成根据本发明的基于规则下发的页面解析系统。
图10示出了根据本发明一个实施例的基于规则下发的页面解析系统1000。该系统可以包括多个客户端设备10以及至少一个规则服务器20。客户端设备10经由网络30与规则服务器20通信。另外,客户端设备10还可以经由网络30访问目标页面所在的网页服务器(为避免混淆未在该系统图中示出)。这里的任意客户端设备10可以经由网络30与至少一个规则服务器进行通信。只要是能够实现本发明的页面资源获取技术方案的客户端设备也都可以看做是组成该系统1000的一个客户端设备,例如客户端设备10-N。网络30可以是用于实现规则下发和获取的任意网络,例如因特网。客户端设备10可以是如上参考图9描述的设备,也可以是能够执行本发明的页面解析方案所涵盖的方法的任何设备。规则服务器20则可以包括处理器用于:根据目标页面的页面结构,制定或更新针对所述目标页面的DOM树修改规则;向访问所述目标页面的客户端设备下发所述DOM树修改规则。
上文中已经参考附图1-10详细描述了根据本发明的基于规则下发的页面解析方法、装置和客户端设备以及相应的系统。如下将结合具体应用例对本发明的原理进行进一步的说明。
【应用例】
为了更直观地体现本发明的优点,在这里示出了具体实施本发明技术方案的一个例子,其由协议制定、规则服务器(用于下发规则)和前端基础服务三部分组成。
一、协议定义
1.此部分包含了规则的制定及包含的内容。
规则1、确定DOM操作类型(action),支持插入,修改,删除
规则2、指定需要监听DOM树变化的上下文(context),默认为body节点
规则3、确定DOM所在节点的位置,即XPath
规则4、指定操作的其它属性(options),比如插入模板,插入的位置,修改的属性,样式等
规则5、按照域名维度存放规则及下发规则
2.以下是针对每种操作定义规则:
(1)插入类型(insert)
插入类型协议:需要指定插入的位置(insertBefore),0为之后插入,1为之前插入,同时需要指定插入的内容(tmpl)。context为检索的上下文,即检索容器。
Figure BDA0001111493920000121
(2)修改类型(modify)
修改类型协议,选项(options)中包含需要修改的属性和样式,属性名称以@开头,样式直接使用样式名。
Figure BDA0001111493920000122
(3)删除类型(delete)
Figure BDA0001111493920000123
Figure BDA0001111493920000131
二、规则服务器
规则服务器提供标准RESTFul API(基于RESTFul架构设计的API服务,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件),供客户端脚本获取规则。
步骤1、按域名存储协议内容,每个域名下支持多个规则
步骤2、允许设置域名下规则的超时时间,单位为秒
步骤3、搭建HTTP服务,提供HTTP API,返回该域名下的所有规则,例如:
GET:http://localhost:3000/api/get_rules?domain=sina.cn
返回数据结构如下:
Figure BDA0001111493920000132
三、前端基础服务
前端基础服务提供一个通用脚本,用于请求规则,对规则进行缓存,解析规则,并在适当的时机执行规则定义的操作。
步骤1、查询本地缓存是否存在规则列表,如果存在,则跳至步骤4,否则,进入步骤2;
步骤2、请求规则服务器接口,查询是否存在该域名下的规则,如果不存在,则终止流程,如果存在则继续下一步;
步骤3、将获取到的最新规则数据缓存起来,如果本地已有数据,则使用最新规则覆盖本地规则;
步骤4、检查规则是否超时,如果超时,则返回步骤2,更新规则内容;
步骤5、根据规则中的上下文,获取对应的节点,并监听Mutation Observer(变动监察器)事件;
步骤6、为了不浪费浏览器资源,允许设置监听超时时间,默认5秒,当超过设置的时间阀值后,停止监听事件;
步骤7、在事件回调中,循环规则列表,检索事件的target元素是否存在满足path的元素,如果满足则进行下一步,否则,继续循环事件;以及
步骤8、根据规则中action及options的值,对DOM节点进行对应的操作。
【总结】
本发明所提出的基于规则下发的DOM更新方案可以用于单页面应用,或者对于更新DOM节点有实时需求的站点。由于在本发明的技术方案中,DOM节点操作发生在页面解析阶段,因此更新DOM节点效率快,不存在闪屏或者视觉差;同时更新的内容与代码解耦,替代传统硬编码模式,适用场景更广。
另外,由于DOM节点的更新优先可以在Mutation Observer回调事件中处理,因此当DOM节点还在浏览器内存中构建的过程时,更新规则就能够参与其中,对页面元素进行修改,而不需要等到页面展现出来后再做修改。整个过程是异步协同的,DOM更新速度快,用户无感知,对用户的浏览体验有非常良好的提升。
最后,由于本发明是基于规则下发的更新机制,因此在页面的代码及模版中,不需要包含此类业务逻辑的编码。通过规则定义可以从程序中解耦出来,程序只需专心处理业务实现,只要调用前端基础服务即可实现DOM节点修改。另外,规则存放于服务器,可随时更新服务器内容,减少发包的流程,提高发布效率。
该方案尤其适于对JavaScript渲染的广告进行过滤。此类广告往往在页面加载完成后再进行渲染,因此使用传统的广告过滤规则无法覆盖到此类广告。现有做法是采用定时器定时检测广告是否已经展示,再对其进行隐藏。但隐藏过程往往会导致闪烁现象。倘若在此场景下使用本发明的技术方案,则可以利用规则下发服务,标识页面广告位置,在广告显示出来之前进行过滤或者隐藏。图11示出了应用本发明技术方案的一个效果例。左图顶部的广告是通过JavaScript渲染出来的。右图则是使用本发明在DOM树构成阶段就删除相应节点并最终展示出的页面。
另外,对于图1所示的情况。利用本发明可以在前端APP中,配合模板渲染,加快元素样式的修改效率。当页面元素的样式是依赖于JavaScript的执行或者路由跳转时,使用本发明的技术方案能够在DOM树构成阶段就执行目标选项卡,由此从根本上解决视觉差问题。例如专利背景中提到的导航示例。
上文中已经参考附图详细描述了根据本发明的基于规则下发的页面解析方法、装置、设备和系统,以及相应技术方案的应用例。
此外,根据本发明的方法还可以实现为一种计算机程序,该计算机程序包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。或者,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的上述方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和动作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (20)

1.一种页面解析方法,包括:
基于针对目标页面的页面解析修改规则,定位所述目标页面的DOM树的特定范围;以及
在页面解析阶段,当DOM树构造到所述范围时,根据所述规则对所述范围执行动作。
2.如权利要求1所述的方法,其中,所述规则包括位置特征和动作特征,
其中基于针对目标页面的规则,定位所述目标页面的DOM树的特定范围包括:
基于所述规则的位置特征,定位所述DOM树中的特定节点,
并且其中当DOM树构造到所述范围时,根据所述规则对所述范围执行动作包括:
当DOM树构造到所述节点时,对所述节点执行由所述动作特征规定的动作。
3.如权利要求1所述的方法,其中,所述规则包括上下文特征、位置特征和动作特征,
其中基于针对目标页面的规则,定位所述目标页面的DOM树的特定范围包括:
基于所述规则的上下文特征,定位所述DOM树中的特定上下文,
并且其中当DOM树构造到所述范围时,根据所述规则对所述范围执行动作包括:
当DOM树构造到所述上下文时,根据所述位置特征定位所述上下文中的特定节点,并且对所述特定节点执行由所述动作特征规定的动作。
4.如权利要求1-3中任一项所述的方法,其中,所述规则还包括动作属性特征,用于进一步规定要执行动作的动作属性。
5.如权利要求1所述的方法,还包括:
在构造到DOM树的所述特定范围之前,从规则服务器获取或更新所述规则。
6.如权利要求5所述的方法,其中,所述规则是按照域名从所述规则服务器获取或更新的规则。
7.如权利要求1所述的方法,其中,针对目标页面存在多个规则,并且针对所述目标页面逐一实施每个规则。
8.如权利要求1所述的方法,还包括:
当在DOM树构造期间超出监听时间无法定位所述特定范围时,停止实施所述规则。
9.一种页面解析规则下发方法,包括:
根据目标页面的结构,制定或更新针对所述目标页面的页面解析修改规则,所述页面解析修改规则定位所述目标页面的DOM树的特定范围;
向访问所述目标页面的客户端设备下发所述页面解析修改规则,所述页面解析修改规则用于所述客户端设备在页面解析阶段,当DOM树构造到所述范围时,根据所述规则对所述范围执行动作。
10.如权利要求9所述的方法,其中,所述页面解析修改规则是包括位置特征和动作特征的DOM树修改规则,所述位置特征规定所述DOM树中的特定位置,所述动作特征规定对所述特定位置执行的特定动作。
11.如权利要求10所述的方法,其中,所述DOM树修改规则还包括上下文特征,用于规定要监听的所述DOM树的特定上下文。
12.如权利要求10所述的方法,其中,所述DOM树修改规则还包括动作属性特征,用于进一步规定要执行动作的动作属性。
13.如权利要求10所述的方法,其中,所述DOM树修改规则是按照域名制定或更新的规则,针对特定域名存在多个规则,并且针对特定域名下的所述目标页面逐一实施每个规则。
14.一种页面解析装置,包括:
范围定位单元,用于基于针对目标页面的页面解析修改规则定位所述目标页面的DOM树的特定范围;以及
动作执行单元,用于在页面解析阶段,当DOM树构造到所述范围时根据所述规则对所述范围执行动作。
15.一种页面解析装置,包括:
上下文定位单元,用于基于针对目标页面的页面解析修改规则定位所述目标页面的DOM树的特定上下文,所述页面解析修改规则是包括位置特征和动作特征的DOM树修改规则;
节点定位单元,用于在页面解析阶段,当DOM树构造到所述上下文时根据所述位置特征定位所述上下文中的特定节点;以及
动作执行单元,用于在页面解析阶段,对所述特定节点执行由所述动作特征规定的动作。
16.如权利要求14或15所述的装置,还包括:
规则获取/更新单元,用于在构造到DOM树的所述特定范围之前从规则服务器获取或更新所述规则。
17.如权利要求14或15所述的装置,还包括:
超时监听单元,用于当在DOM树构造期间超出监听时间无法定位所述特定范围时停止实施所述规则。
18.一种客户端设备,包括:
通信装置,用于与外界通信;
存储器,用于存储信息;以及
与所述通信装置和所述存储器相连接的处理器,所述处理器用于:
基于针对目标页面的页面解析修改规则定位所述目标页面的DOM树的特定范围,其中所述规则是在构造到DOM树的所述特定范围之前由所述通信装置从规则服务器获取或更新的;以及
在页面解析阶段,当DOM树构造到所述范围时根据所述规则对所述范围执行动作。
19.一种客户端设备,包括:
通信装置,用于与外界通信,并在针对目标页面的DOM树构造到特定上下文之前从规则服务器获取或更新DOM树修改规则,所述规则包括上下文特征,位置特征和动作特征;
存储器,用于存储信息;以及
与所述通信装置和所述存储器相连接的处理器,所述处理器用于:
基于所述上下文特征,定位所述目标页面的DOM树的特定上下文;
在页面解析阶段,当DOM树构造到所述上下文时,根据所述位置特征定位所述上下文中的特定节点;以及
对所述特定节点执行由所述动作特征规定的动作。
20.一种基于规则下发的页面解析系统,所述系统包括规则服务器以及如权利要求18或19所述的客户端设备,并且其中所述规则服务器包括处理器用于:
根据目标页面的页面结构,制定或更新针对所述目标页面的DOM树修改规则;
向访问所述目标页面的客户端设备下发所述DOM树修改规则。
CN201610811199.5A 2016-09-08 2016-09-08 基于下发规则的页面解析方法、装置、客户端设备及系统 Active CN107807927B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610811199.5A CN107807927B (zh) 2016-09-08 2016-09-08 基于下发规则的页面解析方法、装置、客户端设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610811199.5A CN107807927B (zh) 2016-09-08 2016-09-08 基于下发规则的页面解析方法、装置、客户端设备及系统

Publications (2)

Publication Number Publication Date
CN107807927A CN107807927A (zh) 2018-03-16
CN107807927B true CN107807927B (zh) 2022-04-29

Family

ID=61576097

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610811199.5A Active CN107807927B (zh) 2016-09-08 2016-09-08 基于下发规则的页面解析方法、装置、客户端设备及系统

Country Status (1)

Country Link
CN (1) CN107807927B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947635B (zh) * 2019-03-18 2019-12-27 苏州亿歌网络科技有限公司 一种数据上报方法、装置、存储介质及终端设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101587488A (zh) * 2009-05-25 2009-11-25 深圳市腾讯计算机系统有限公司 一种搜索引擎中页面重定向的检测方法及装置
CN102916994A (zh) * 2011-08-02 2013-02-06 华为技术有限公司 一种页面浏览方法、服务器和终端
CN103226599A (zh) * 2013-04-23 2013-07-31 翁杰 一种精确提取网页内容的方法及系统
CN103399866A (zh) * 2013-07-05 2013-11-20 北京小米科技有限责任公司 一种网络页面的渲染方法、装置及设备
CN103635897A (zh) * 2011-06-23 2014-03-12 微软公司 对运行页面进行动态更新

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120110433A1 (en) * 2010-10-28 2012-05-03 Microsoft Corporation Parallel web page processing
CN102831121B (zh) * 2011-06-15 2015-07-08 阿里巴巴集团控股有限公司 一种网页信息抽取的方法和系统
CN102955803B (zh) * 2011-08-26 2016-04-20 腾讯科技(深圳)有限公司 一种网站展示方法及浏览器
US9251287B2 (en) * 2011-08-26 2016-02-02 International Business Machines Corporation Automatic detection of item lists within a web page
CN102722563B (zh) * 2012-05-31 2014-12-03 优视科技有限公司 页面显示方法及装置
CN103593414A (zh) * 2013-10-29 2014-02-19 北京奇虎科技有限公司 一种浏览器中网页的展现方法和装置
CN104866512B (zh) * 2014-02-26 2018-09-07 腾讯科技(深圳)有限公司 提取网页内容的方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101587488A (zh) * 2009-05-25 2009-11-25 深圳市腾讯计算机系统有限公司 一种搜索引擎中页面重定向的检测方法及装置
CN103635897A (zh) * 2011-06-23 2014-03-12 微软公司 对运行页面进行动态更新
CN102916994A (zh) * 2011-08-02 2013-02-06 华为技术有限公司 一种页面浏览方法、服务器和终端
CN103226599A (zh) * 2013-04-23 2013-07-31 翁杰 一种精确提取网页内容的方法及系统
CN103399866A (zh) * 2013-07-05 2013-11-20 北京小米科技有限责任公司 一种网络页面的渲染方法、装置及设备

Also Published As

Publication number Publication date
CN107807927A (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
US10956531B2 (en) Dynamic generation of mobile web experience
US20220100947A1 (en) Systems and methods for sharing user generated slide objects over a network
EP3491544B1 (en) Web page display systems and methods
US8122104B2 (en) Method and system for providing XML-based asynchronous and interactive feeds for web applications
KR102185864B1 (ko) 프레젠테이션을 위한 네이티브 콘텐츠의 서버측 렌더링 방법 및 시스템
CN106575298B (zh) 包含动态内容和陈旧内容的网站的快速呈现
US8527504B1 (en) Data network content filtering using categorized filtering parameters
KR100820373B1 (ko) 툴바 서비스 제공 방법 및 장치
CN110442811A (zh) 一种页面的处理方法、装置、计算机设备和存储介质
US20080228910A1 (en) Method for monitoring user interaction to maximize internet web page real estate
US20090187830A1 (en) Systems and methods for webpage creation and updating
WO2008112897A1 (en) System for supporting electronic commerce in social networks
JP2009545815A (ja) ウェブシンジケーションを介した双方向マルチマスタ同期
US20110145299A1 (en) Offline Gadgets IDE
CN103383687A (zh) 一种页面处理方法和装置
US9092538B2 (en) System and method for determining the data model used to create a web page
CN108319619B (zh) 数据处理方法及装置
CN107807927B (zh) 基于下发规则的页面解析方法、装置、客户端设备及系统
JP2008282180A (ja) ユーザ端末、登録サーバ、広告登録方法、広告データ送信方法及びプログラム
JP2019079401A (ja) 生成装置、端末装置、共有ページ生成システム、生成方法、及び制御プログラム
US11288336B2 (en) Systems and methods for providing content items in situations involving suboptimal network conditions
JP4921570B2 (ja) ブログサービス提供システム、方法及びプログラム
KR20100126147A (ko) 키워드를 이용한 광고 방법
JP2018200661A (ja) チャットシステム、プログラム
KR20140146555A (ko) 통신 부하를 발생시키지 않는 데이터 교환 방법

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200709

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio square 14 storey tower

Applicant before: Guangzhou Dongjing Computer Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220617

Address after: 510520 Room 303, Room 305, room 307, Room 308, No. 38, Gaopu Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee after: Guangzhou Dongjing Computer Technology Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: Alibaba (China) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220905

Address after: 310052 room 554, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 510520 Room 303, Room 305, room 307, Room 308, No. 38, Gaopu Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee before: Guangzhou Dongjing Computer Technology Co.,Ltd.