CN105677654B - 广告过滤方法及装置 - Google Patents

广告过滤方法及装置 Download PDF

Info

Publication number
CN105677654B
CN105677654B CN201410660037.7A CN201410660037A CN105677654B CN 105677654 B CN105677654 B CN 105677654B CN 201410660037 A CN201410660037 A CN 201410660037A CN 105677654 B CN105677654 B CN 105677654B
Authority
CN
China
Prior art keywords
css
style
css style
selector
styles
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
CN201410660037.7A
Other languages
English (en)
Other versions
CN105677654A (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 CN201410660037.7A priority Critical patent/CN105677654B/zh
Priority to PCT/CN2015/085803 priority patent/WO2016078442A1/zh
Priority to US15/527,971 priority patent/US10642924B2/en
Publication of CN105677654A publication Critical patent/CN105677654A/zh
Application granted granted Critical
Publication of CN105677654B publication Critical patent/CN105677654B/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/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了一种广告过滤方法及装置,该方法包括:通过浏览器访问网页页面,根据所述网页域名获取所述网页的广告元素的选择器,并在所述选择器后增加隐藏所述广告元素的规则声明以生成一特定类别的CSS样式;将所述特定类别的CSS样式注入所述浏览器;将所述特定类别的CSS样式的级联优先级设置成最高级联优先级;所述浏览器根据CSS样式的级联优先级顺序对CSS样式进行级联使得所述特定类别的CSS样式生效。通过上述方式,本发明能够在页面作者采取反制广告过滤方法的情况下,依然有效过滤来源于页面作者的广告。

Description

广告过滤方法及装置
技术领域
本发明涉及网页技术领域,特别是涉及一种广告过滤方法及装置。
背景技术
随着网络时代的发展,很多广告在互联网上发布宣传,几乎每打开一个网页,都能看到各种各样的广告,即使用户自己关闭广告,过一段时间该广告又重新出现在网页上。
目前浏览器都设置有广告过滤的功能,常用的过滤手段是采用层叠样式表(Cascading Style Sheets,简称为CSS)隐藏方法进行广告过滤,其原理是浏览器通过强制声明广告元素的display属性为none,从而达到隐藏广告元素的目的,通过CSS使得广告隐藏是最简单和有效的过滤广告方式。
但是,对于通过CSS隐藏广告以实现广告过滤的方式,页面作者对被过滤广告可以采取一些反制方法,防止广告被过滤。比如,通过强制声明important关键字方式提高广告元素display属性的优先级,或者启动一个定时器定时检查广告元素的display属性是否为none,检测该广告是否被隐藏。当display属性为none时,则重新设置广告元素的display属性为:block该广告显示,使得隐藏的广告重新被显示。因此,对于上述情况,现有的通过CSS使广告隐藏实现广告过滤的方式不能够有效屏蔽广告。
发明内容
本发明主要解决的技术问题是提供一种广告过滤方法及装置,能够在页面作者采取反制广告过滤方法的情况下,依然有效过滤页面的广告。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种广告过滤方法,所述方法包括:通过浏览器访问网页页面,根据所述网页域名获取所述网页的广告元素的选择器,并在所述选择器后增加隐藏所述广告元素的规则声明以生成一特定类别的CSS样式;将所述特定类别的CSS样式注入所述浏览器;将所述特定类别的CSS样式的级联优先级设置成最高级联优先级;所述浏览器根据CSS样式的级联优先级顺序对CSS样式进行级联使得所述特定类别的CSS样式生效。
其中,所述浏览器根据CSS样式的级联优先级顺序对CSS样式进行级联使得所述特定类别的CSS样式生效的步骤包括:获取与所述特定类别的CSS样式具有相同选择器的网页的CSS样式;以及按照获取的所述CSS样式和所述特定类别的CSS样式的级联优先级从低到高依次选择一CSS样式的规则声明的属性值给所述广告元素的规则声明的属性赋值。
其中,所述广告过滤方法还包括:解析所述特定类别的CSS样式以得到对应的选择器和规则声明,并将所述解析结果保存到CSS样式表中以更新所述CSS样式表;其中,所述CSS样式表还保存了所述网页CSS样式的选择器和规则声明;根据所述CSS样式表的变化判断浏览器当前的样式发生变化;以及对网页CSS样式和所述特定类别的CSS样式进行计算。
其中,对网页CSS样式和所述特定类别的CSS样式进行计算具体为:根据更新的所述CSS样式表中CSS样式的选择器对规则声明进行分类,将相同选择器的规则声明归类到一起。
其中,所述广告过滤方法还包括:根据所述对规则声明进行分类的分类结果获取所述广告元素的选择器对应的CSS规则声明,以确定对应的CSS样式。
其中,将所述特定类别的CSS样式注入所述浏览器的步骤具体为:通过新增加的接口将所述特定类别的CSS样式注入所述浏览器。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种广告过滤装置,所述装置包括:CSS样式生成模块,用于通过浏览器访问网页页面,根据所述网页域名获取所述网页的广告元素的选择器,并在所述选择器后增加隐藏所述广告元素的规则声明以生成一特定类别的CSS样式;CSS样式注入模块,用于将所述CSS样式生成模块生成的所述特定类别的CSS样式注入所述浏览器;级联优先级设定模块,用于将所述CSS样式生成模块生成的所述特定类别的CSS样式的级联优先级设置成最高级联优先级;CSS样式生效模块,用根据CSS样式的级联优先级顺序对CSS样式进行级联使所述特定类别的CSS样式生效。
其中,所述CSS样式生效模块使所述特定类别的CSS样式生效具体为:获取与所述特定类别的CSS样式具有相同选择器的网页的CSS样式,并按照获取的所述CSS样式和所述特定类别的CSS样式的级联优先级从低到高依次选择一CSS样式的规则声明的值给所述广告元素的规则声明赋值。
其中,所述装置还包括:CSS样式解析模块,用于解析所述CSS样式生成模块生成的所述特定类别的CSS样式以得到对应的选择器和规则声明,并将所述解析结果保存到CSS样式表中以更新所述CSS样式表;其中,所述CSS样式表还保存了所述网页的CSS样式的选择器和规则声明;CSS样式计算模块,用于根据所述CSS样式表的变化判断浏览器当前的样式发生变化,并对网页CSS样式和所述特定类别的CSS样式进行计算。
其中,所述装置还包括:CSS样式匹配模块,用于根据所述CSS样式计算模块得到的结果获取所述广告元素的选择器对应的CSS规则声明,从以确定对应的CSS样式。
本发明的有益效果是:本发明通过浏览器访问网页页面时,注入具有高级别的样式级联优先级的特定类别的CSS样式,该特定类别的CSS样式包含与广告元素选择器相同的选择器,并在该选择器后增加隐藏该广告元素的规则声明,按照样式级联优先级从低到高为该广告元素赋值以利用该特定类别的CSS样式控制该广告元素的显示属性,进而在网页渲染时不显示该广告元素。由于来源于ADB的CSS样式的优先级设置成最高优先级,通过这种方式,能够将来源于页面作者的广告有效过滤掉。从而,弥补了隐藏方式过滤广告的技术缺陷,并且不需要更改现有过滤广告的过滤规则。
附图说明
图1是本发明广告过滤方法一实施方式的流程图;
图2是本发明广告过滤方法另一实施方式的流程图;
图3是本发明广告过滤方法中使特定类别的CSS样式生效方法的一实施方式的流程图;
图4是本发明广告过滤装置一实施方式的结构示意图;
图5是本发明广告过滤装置另一实施方式的结构示意图。
元件标号:
装置 40、50
CSS样式生成模块 41、51
CSS样式注入模块 42、52
级联优先级设定模块 43、53
CSS样式生效模块 44、54
CSS样式解析模块 55
CSS样式计算模块 56
CSS样式匹配模块 57
具体实施方式
下面结合附图和实施方式对本发明进行详细说明。
首先对本发明涉及到的如下概念进行解释说明。
层叠样式表(Cascading Style Sheets,简写为CSS),它是一种用来表现超级文本标记语言(Hyper Text Markup Language,简写为HTML)或可扩展标记语言(ExtensibleMarkup Language,简写为XML)等文件样式的计算机语言,能够真正做到网页表现与内容分离的一种样式设计语言,能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计。一条CSS样式通常由选择器和规则声明两个部分组成:选择器表示样式的类型,CSS选择器种类可以为ID选择器、类选择器、通用选择器、标签选择器等;规则声明由CSS元素的属性和属性值组成,其中,属性(property)是样式属性(style attribute),每个属性具有一个属性值,属性和属性值表示CSS元素的最终表现形式。
网页元素是文档结构的基础,在CSS中,每个网页元素生成了一个包含网页元素内容的框,不同的网页元素显示的方式有所不同。网页元素包括广告元素,广告元素是指与广告显示相关的元素。
CSS样式来源,是指CSS样式来源于哪里,例如:CSS样式来源可以来源于页面作者(Author)、用户(User)、用户代理(User Agent)等等。CSS样式来源不同,样式的层叠方式也不一样。Author来源的CSS样式都是由网站管理员编写发布的;用户(User),即浏览网页的用户,可以通过一些手段来修改网页元素的样式;用户代理(User Agent),通常指浏览器,一些浏览器可以通过设置选项来修改网页元素的样式。在现有技术中,在反制CSS隐藏屏蔽广告方法中,通过声明important关键字方式提高广告元素display属性的优先级方式,或者启动定时器轮询改变广告元素display属性方式,都属于来源于Author的CSS样式。
请参阅图1,为本发明广告过滤方法一实施方式的流程图,本实施方式的流程图是浏览器已经打开网页页面的情形,该方法包括:
步骤S10:通过浏览器访问网页页面,根据该网页域名获取该网页的广告元素的选择器,并在该选择器后增加隐藏该广告元素的规则声明以生成一特定类别的CSS样式。
步骤S11,将该特定类别的CSS样式注入浏览器。
步骤S12,将该特定类别的CSS样式的级联优先级设置成最高级联优先级。
步骤S13,该浏览器根据CSS样式的级联优先级顺序对CSS样式进行级联使得该特定类别的CSS样式生效。
利用本发明实施方式,通过浏览器访问网页页面时,注入具有最高级别的样式级联优先级的特定类别的CSS样式,该特定类别的CSS样式包含与广告元素选择器相同的选择器,并在该选择器后增加隐藏该广告元素的规则声明,按照样式级联优先级从低到高为该广告元素赋值以利用该特定类别的CSS样式控制该广告元素的显示属性,进而在网页渲染时不显示该广告元素。从而,弥补了隐藏方式过滤广告的技术缺陷,并且不需要更改现有过滤广告的过滤规则。
请参阅图2,为本发明广告过滤方法另一实施方式的流程图,本实施方式的流程图是浏览器已经打开网页页面的情形,该方法包括:
步骤S20,通过浏览器访问网页页面,根据该网页域名在本地广告过滤规则库中查找到该网页的广告元素的选择器,并在该选择器后增加隐藏该广告元素的规则声明以生成一特定类别的CSS样式。
具体地,隐藏该广告元素的规则声明为:将该广告元素CSS样式的display属性的属性值设置为none,还可以设置为none!important。
例如,假设网页页面http://m.autohome.com.cn/具有一个广告元素,在本地广告过滤规则库中记录了该广告元素的CSS样式,该广告元素的CSS样式包括的CSS类选择器为“.fn_a14_”,并声明了如下CSS样式规则:.fn_a14_{display:block!important;}。因此,当在浏览器中打开该网页时,可以根据域名m.autohome.com.cn在广告过滤规则库中获取到该广告元素的CSS样式。本发明实施方式中的本地广告过滤规则库的建立与现有技术相同,所以在此不加赘述。
步骤S21:通过新增的接口将该特定类别的CSS样式注入到浏览器中。
具体地,通过新增接口Document::appendADBText(const String&string)将该特定类别的CSS样式注入到浏览器中。其中,ADB为该特定类别的CSS样式。
步骤S22,将该特定类别的CSS样式的级联优先级设置成最高级联优先级。
其中,该网页具有多个不同种类的CSS样式,例如,Transition、User、Agent、User、Author、Animation等,这些不同种类的CSS样式都定义了各自的样式级联优先级。
步骤S23,浏览器获取与该特定类别的CSS样式具有相同选择器的网页的CSS样式。
步骤S24,按照获取的该CSS样式和该特定类别的CSS样式的级联优先级从低到高依次选择一CSS样式的规则声明的属性值给该广告元素的规则声明的属性赋值。
如上所述,根据CSS样式的级联优先级顺序对CSS样式进行级联使得该特定类别的CSS样式生效,以利用该特定类别的CSS样式的级联优先级设置成最高级别的级联优先级来控制该广告元素的显示属性,进而在网页渲染时不显示该广告元素。
采用样式级联为广告元素赋值时,获取的CSS样式与该特定类别的CSS样式形成一CSS样式集合,且该CSS样式集合中的每个CSS样式均定义了各自的样式级联优先级,浏览器则按照级联优先级从低到高的顺序,每次从上述的CSS样式集合中选择一个CSS样式为该广告元素赋值,直到选择了级联优先级最高的CSS样式(该特定类别的CSS样式)时,该广告元素的最终赋值为该级联优先级最高的CSS样式。
该特定类别的CSS样式的级联优先级在所有CSS样式中设置为最高级。这样,可以保证通过样式级联由低到高为该广告元素的赋值时最终利用该特定类别的CSS样式控制广告元素的显示属性,从而控制广告元素不进行显示。
在CSS样式级联过程中,优先级最高的CSS样式最后进行级联,在同等优先级的情况下,最后写入的CSS样式表的样式为最高优先级的CSS样式,为最终呈现的样式。
由于网页具有多个不同类别的CSS样式,因此浏览器还针对每个类别的CSS样式进行如上所述的样式级联,使得对应的元素被赋值,在此不加赘述。
请同时参阅图3,为本发明广告过滤方法中使特定类别的CSS样式生效方法的一实施方式的流程图,该方法包括:
步骤S30,解析该特定类别的CSS样式以得到该特定类别的CSS样式的选择器和规则声明,并将解析结果保存到CSS样式表中。
其中,该CSS样式表中还保存了该网页各类CSS样式对应的选择器和规则声明。
具体地,通过新增接口接收注入的该特定类别的CSS样式后,浏览器解析该特定类别的CSS样式得到对应的选择器和规则声明的同时还生成对应的Hash值,并将解析结果(包括选择器和规则声明)保存到CSS样式表对象,通过该CSS样式表对象将该特定类别的CSS样式的规则声明增加到该CSS样式表中,从而将解析结果保存到CSS样式表中。
步骤S31,根据该CSS样式表的变化判断浏览器当前的样式发生变化。
具体地,当浏览器注入新的CSS样式、CSS样式改变、或者删除原有的CSS样式等,都会使样式表的大小或者数组项发生改变。因此,本发明实施方式中在浏览器中注入该特定类别的CSS样式时,该样式表变大。
进一步地,通过接口Document::analyzeStylesheetChange()分析样式表,调用函数styleSelcctorChanged()根据分析结果确定样式表是否发生变化。
步骤S32,对该网页CSS样式和该特定类别的CSS样式进行计算。
具体地,根据该CSS样式表中CSS样式的选择器对规则声明进行分类,将相同选择器的规则声明归类到一起。
由于该CSS样式表保存了该网页各类CSS样式对应的选择器和规则声明,并且增加了该特定类别的CSS样式的选择器和规则声明。因此,将当前CSS样式表中相同的选择器都分为一类,并将选择器类别相同的规则声明也都放到一起,这样做的好处是方便后续的样式匹配和样式级联(将在下文进行详细描述)。
具体地,通过查询CSS样式表对象将CSS样式表中保存的CSS样式的选择器和规则声明进行对应的分类,从而将CSS样式表对象转换成RuleSet对象,在本实施方式中,确定与该特定类别的CSS样式的选择器相同的选择器,并将这些选择器对应的规则声明都归类到一起,并把分类结果保存在m_ADBStyle中,m_ADBStyle就是一个RuleSet对象。
进一步地,如步骤S20所述生成特定类别的CSS时,可以根据操作对象的不同(如页面作者Author、用户User、用户代理User Agent等)对应生成不同来源的特定类别的CSS样式,不同来源的特定类别的CSS样式也不同。该不同来源的特定类别的CSS样式分别如步骤S30所述进行解析,且解析结果均保存在CSS样式表。因此,查询CSS样式表对象根据CSS样式表中CSS样式的选择器对规则声明进行分类时,相应的分类结果保存在一个RuleSet中,使得一个RuleSet中只保存一个来源的CSS样式的分类结果。
在本实施方式中,当前的全部CSS样式经过计算后,其样式级联优先级从高到低如下:
(1)Important ADB样式
(2)Transition样式
(3)Important User Agent样式
(4)Important User样式
(5)Important文档对象模型样式
(6)Important Author样式
(7)ADB样式
(8)Animation样式
(9)文档对象模型样式
(10)Author样式
(11)User样式
(12)User Agent样式
其中,ADB样式为该特定类别的CSS样式。
子步骤S33,根据该分类结果获取广告元素的选择器对应的CSS规则声明,以确定对应的CSS样式。
当浏览器为每个元素构建网页渲染样式时,通过接口CSSStyleSelector::StyleForElement()发起样式匹配流程。该样式匹配流程具体为:通过接口matchRuleSet()分别为User Agent、User、Author等不同种类的CSS样式进行样式匹配,根据每个CSS样式的选择器并结合如步骤S32所述的分类结果获取所有的规则声明以实现样式匹配,匹配结果保存在特定的数据结构MatchResult中。在本实施方式中,m_ADBStyle保存了该特定类别的CSS样式的分类结果,因此通过接口matchRuleSet()为m_ADBStyle执行如上所述的样式匹配,并将匹配结果保存到MatchResult。
然后,如步骤S24所述,根据各CSS样式的级联优先级从低到高依次选择一CSS样式的规则声明的属性值为该广告元素的规则声明的属性赋值。
具体地,浏览器匹配到不同种类的样式后,不会使用所有匹配中的样式构建最终的渲染样式,而是首先通过接口CSSStyleSelector::applyMatchedDeclarations()来决定MatchResult中匹配中的样式的优先级,按照样式级联优先级从低到高为对应的元素的规则声明进行赋值匹配,因此级联优先级高的样式才会最终出现在RenderStyle中。
由于在CSS样式级联过程中,优先级最高的CSS样式最后进行级联,在同等优先级的情况下,最后写入的CSS样式表的样式为最高优先级的CSS样式,为最终呈现的样式。如前面的本实施例的Important ADB样式与Important User Agent样式,都有“Important”作为样式优先级声明,但是由于Important ADB样式在Important User Agent样式后写入样式表,所以Important ADB样式在进行样式级联的时候是最后进行级联,认为Important ADB样式的级联优先级最高。
通过如上所述的样式级联为该广告元素的规则声明的属性赋值时,最终使该广告元素的样式被设定为该特定类别的CSS样式,即Important ADB样式。由于该特定类别的CSS样式的规则声明为隐藏广告元素,因此在进行网页样式渲染时不显示该广告元素。
同样以网页页面http://m.autohome.com.cn/为例进行说明,如上所述通过接口Document::appendADBText()注入隐藏广告的特定类别的CSS样式A:.fn_a14_{display:none!important;}。当注入的该特定类别的CSS样式A:.fn_a14_{display:none!important;}和来自网页作者Author的CSS样式A:.fn_a14_{display:block!important;}同时存在,在样式级联过程中,由于样式A的级联优先级高于样式B的级联优先级,所以只有A样式才会出现在渲染样式中,即对于CSS元素.fn_a14_,它最终的display属性为none。
请参阅图4,为本发明广告过滤装置的一实施方式的结构示意图,本实施方式在浏览器已经打开网页页面的情形下,该装置40包括:CSS样式生成模块41、CSS样式注入模块42、级联优先级设定模块43以及CSS样式生效模块44。
该CSS样式生成模块41用于通过浏览器访问网页页面,根据该网页域名获取该网页的广告元素的选择器,并在该选择器后增加隐藏该广告元素的规则声明以生成一特定类别的CSS样式。
该CSS样式注入模块42用于将该CSS样式生成模块41生成的该特定类别的CSS样式注入浏览器。
该级联优先级设定模块43用于将该CSS样式生成模块41生成的该特定类别的CSS样式的级联优先级设置成最高级联优先级。
该CSS样式生效模块44用于根据CSS样式的级联优先级顺序对CSS样式进行级联使所述特定类别的CSS样式生效。
利用本发明实施方式,通过浏览器访问网页页面时,注入具有最高级别的样式级联优先级的特定类别的CSS样式,该特定类别的CSS样式包含与广告元素选择器相同的选择器,并在该选择器后增加隐藏该广告元素的规则声明,按照样式级联优先级从低到高为该广告元素赋值以利用该特定类别的CSS样式控制该广告元素的显示属性,进而在网页渲染时不显示该广告元素。从而,弥补了隐藏方式过滤广告的技术缺陷,并且不需要更改现有过滤广告的过滤规则。
请参阅图5,为本发明广告过滤装置的另一实施方式的结构示意图。本实施方式在浏览器已经打开网页页面的情形下,该装置包括:CSS样式生成模块51、CSS样式注入模块52、级联优先级设定模块53、CSS样式生效模块54、CSS样式解析模块55、CSS样式计算模块56以及CSS样式匹配模块57。
该CSS样式生成模块51用于通过浏览器访问的网页页面,根据该网页域名获取该网页的广告元素的选择器,并在该选择器后增加隐藏该广告元素的规则声明以生成一特定类别的CSS样式。
在本实施方式中,该CSS样式生成模块51根据该网页域名在本地广告过滤规则库中查找到该网页的广告元素的选择器。具体地,该CSS样式生成模块51设置隐藏该广告元素的规则声明为:将该广告元素CSS样式的display属性的属性值设置为none,还可以设置为none!important。
例如,假设网页页面http://m.autohome.com.cn/具有一个广告元素,在本地广告过滤规则库中记录了该广告元素的CSS样式,该广告元素的CSS样式包括的CSS类选择器为“.fn_a14_”,并声明了如下CSS样式规则:.fn_a14_{display:block!important;}。因此,当在浏览器中打开该网页时,可以根据域名m.autohome.com.cn在广告过滤规则库中获取到该广告元素的CSS样式。
该CSS样式注入模块52用于将该CSS样式生成模块51生成的该特定类别的CSS样式注入浏览器。具体地,该CSS样式注入模块52通过新增的接口将该特定类别的CSS样式注入到浏览器中。进一步地,通过新增接口Document::appendADBText(const String&string)将该特定类别的CSS样式注入到浏览器中。其中,ADB为该特定类别的CSS样式。
该CSS样式解析模块55用于解析该CSS样式生成模块51生成的特定类别的CSS样式以得到该特定类别的CSS样式的选择器和规则声明,并将解析结果保存到CSS样式表中以更新该CSS样式表。其中,该CSS样式表中还保存了该网页各类CSS样式对应的选择器和规则声明。具体地,该CSS样式注入模块52通过新增接口接收注入的该特定类别的CSS样式后,该CSS样式解析模块55解析该特定类别的CSS样式得到对应的选择器和规则声明的同时还生成对应的Hash值,并将解析结果(包括选择器和规则声明)保存到CSS样式表对象,通过该CSS样式表对象将该特定类别的CSS样式的规则声明增加到该CSS样式表中,从而将解析结果保存到CSS样式表中。
该CSS样式计算模块56用于根据所述CSS样式表的变化判断浏览器当前的样式发生变化,并对网页CSS样式和所述特定类别的CSS样式进行计算。具体地,当该CSS样式注入模块52注入新的CSS样式、CSS样式改变、或者删除原有的CSS样式等,都会使样式表的大小或者数组项发生改变。因此,本发明实施方式中在浏览器中注入该特定类别的CSS样式时,该样式表变大。进一步地,该CSS样式计算模块56通过接口Document::analyzeStylesheetChange()分析该样式表,以及调用函数styleSelcctorChanged()根据分析结果确定该样式表是否发生变化。当确定发生变化时由浏览器重新对当前的全部CSS样式(包括该网页的各类CSS样式以及该特定类别的CSS样式)进行计算。
在本实施方式中,该CSS样式计算模块56对CSS样式进行计算具体为根据该CSS样式表中CSS样式的选择器对规则声明进行分类,将相同选择器的规则声明归类到一起。由于该CSS样式表保存了该网页各类CSS样式对应的选择器和规则声明,并且又增加了该特定类别的CSS样式的选择器和规则声明。因此,将当前CSS样式表中相同类别的选择器都分为一类,并将选择器类别相同的规则声明也都放到一起,这样做的好处是方便后续的样式匹配和样式级联(将在下文进行详细描述)。具体地,该CSS样式计算模块56通过查询CSS样式表对象将CSS样式表中保存的CSS样式的选择器和规则声明进行对应的分类,从而将CSS样式表对象转换成RuleSet对象,在本实施方式中,该CSS样式计算模块56确定与该特定类别的CSS样式的选择器类别相同的选择器,并将这些选择器对应的规则声明都归类到一起,把分类结果保存在m_ADBStyle中,m_ADBStyle就是一个RuleSet对象。
进一步地,不同来源的特定类别的CSS样式不同,因此,该CSS样式计算模块56查询CSS样式表对象根据CSS样式表中CSS样式的选择器对规则声明进行分类时,相应的分类结果保存在一个RuleSet中,使得一个RuleSet中只保存一个来源的CSS样式的分类结果。
该CSS样式匹配模块57用于根据该CSS样式计算模块56的结果获取广告元素的选择器对应的CSS规则声明,以确定对应的CSS样式。当浏览器为每个元素构建网页渲染样式时,该CSS样式匹配模块57通过接口CSSStyleSelector::StyleForElement()发起样式匹配流程。该样式匹配流程具体为:该CSS样式匹配模块57通过接口matchRuleSet()分别为User Agent、User、Author等不同种类的CSS样式进行样式匹配,并根据该CSS样式计算模块56得到的结果针对每个CSS样式的选择器获取对应的所有规则声明以实现样式匹配,匹配结果保存在特定的数据结构MatchResult中。在本实施方式中,该CSS样式计算模块56将该特定类别的CSS样式的分类结果保存在m_ADBStyle,因此该CSS样式匹配模块57通过接口matchRuleSet()为m_adbStyle执行如上所述的样式匹配,将匹配结果保存到MatchResult。
该CSS样式生效模块54用于从该CSS样式匹配模块57获取的CSS样式及该特定类别的CSS样式中按照样式级联优先级从低到高依次选择一该CSS样式为该广告元素赋值,以利用该特定类别的CSS样式的级联优先级设置成最高级联优先级来控制该广告元素的显示属性,进而在网页渲染时不显示该广告元素。
具体地,浏览器匹配到不同种类的样式后,不会使用所有匹配中的样式构建最终的渲染样式,而是由CSS样式生效模块54通过接口CSSStyleSelector::applyMatchedDeclarations()来决定MatchResult中匹配中的样式的优先级,按照样式级联优先级从低到高为对应的元素的规则声明进行赋值匹配,因此级联优先级高的样式才会最终出现在RenderStyle中。
在本发明实施方式中,该特定类别的CSS样式的级联优先级最高,通过如上所述的样式级联为该广告元素的规则声明的属性赋值时,最终使该广告元素的样式被设定为该特定类别的CSS样式。由于该特定类别的CSS样式的规则声明为隐藏广告元素,因此在进行网页样式渲染时不显示该广告元素。
同样以网页页面http://m.autohome.com.cn/为例进行说明,该CSS样式注入模块52如上所述通过接口Document::appendADBText()注入隐藏广告的特定类别的CSS样式A:.fn_a14_{display:none!important;}。当注入的该特定类别的CSS样式A:.fn_a14_{display:none!important;}和来自网页作者Author的CSS样式A:.fn_a14_{display:block!important;}同时存在,在样式级联过程中,由于样式A的级联优先级高于样式B的级联优先级,所以只有A样式才会出现在渲染样式中,即对于CSS元素.fn_a14_,它最终的display属性为none。
本发明提供的网页广告过滤方法及装置,通过浏览器访问网页页面时,注入具有高级别的样式级联优先级的特定类别的CSS样式,该特定类别的CSS样式包含与广告元素选择器相同的选择器,并在该选择器后增加隐藏该广告元素的规则声明,按照样式级联优先级从低到高为该广告元素赋值以利用该特定类别的CSS样式控制该广告元素的显示属性,进而在网页渲染时不显示该广告元素。由于来源于ADB的CSS样式的优先级设置成最高优先级,通过这种方式,能够将来源于页面作者的广告有效过滤掉。从而,弥补了隐藏方式过滤广告的技术缺陷,并且不需要更改现有过滤广告的过滤规则。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (6)

1.一种广告过滤方法,所述方法包括:
通过浏览器访问网页页面,根据所述网页域名获取所述网页的广告元素的选择器,并在所述选择器后增加隐藏所述广告元素的规则声明以生成一特定类别的CSS样式;
通过新增加的接口将所述特定类别的CSS样式注入所述浏览器;
将所述特定类别的CSS样式的级联优先级设置成最高级联优先级;
所述浏览器根据CSS样式的级联优先级顺序对CSS样式进行级联使得所述特定类别的CSS样式生效;
所述浏览器根据CSS样式的级联优先级顺序对CSS样式进行级联使得所述特定类别的CSS样式生效,包括:
解析所述特定类别的CSS样式以得到对应的选择器和规则声明,并将所述解析结果保存到CSS样式表中以更新所述CSS样式表;其中,所述CSS样式表还保存了所述网页CSS样式的选择器和规则声明;
根据所述CSS样式表的变化判断浏览器当前的样式发生变化;以及
根据更新的所述CSS样式表中CSS样式的选择器对规则声明进行分类,将相同选择器的规则声明归类到一起。
2.根据权利要求1所述的广告过滤方法,其中,所述浏览器根据CSS样式的级联优先级顺序对CSS样式进行级联使得所述特定类别的CSS样式生效的步骤还包括:
获取与所述特定类别的CSS样式具有相同选择器的网页的CSS样式;以及
按照获取的所述CSS样式和所述特定类别的CSS样式的级联优先级从低到高依次选择一CSS样式的规则声明的属性值给所述广告元素的规则声明的属性赋值。
3.根据权利要求1所述的广告过滤方法,还包括:
根据所述对规则声明进行分类的分类结果获取所述广告元素的选择器对应的CSS规则声明,以确定对应的CSS样式。
4.一种广告过滤装置,所述装置包括:
CSS样式生成模块,用于通过浏览器访问网页页面,根据所述网页域名获取所述网页的广告元素的选择器,并在所述选择器后增加隐藏所述广告元素的规则声明以生成一特定类别的CSS样式;
CSS样式注入模块,用于通过新增的接口将所述CSS样式生成模块生成的所述特定类别的CSS样式注入所述浏览器;
级联优先级设定模块,用于将所述CSS样式生成模块生成的所述特定类别的CSS样式的级联优先级设置成最高级联优先级;
CSS样式生效模块,用根据CSS样式的级联优先级顺序对CSS样式进行级联使所述特定类别的CSS样式生效;
所述装置还包括:
CSS样式解析模块,用于解析所述CSS样式生成模块生成的所述特定类别的CSS样式以得到对应的选择器和规则声明,并将所述解析结果保存到CSS样式表中以更新所述CSS样式表;其中,所述CSS样式表还保存了所述网页的CSS样式的选择器和规则声明;
CSS样式计算模块,用于根据所述CSS样式表的变化判断浏览器当前的样式发生变化,并根据更新的所述CSS样式表中CSS样式的选择器对规则声明进行分类,将相同选择器的规则声明归类到一起。
5.根据权利要求4所述的广告过滤装置,其中,所述CSS样式生效模块使所述特定类别的CSS样式生效具体为:获取与所述特定类别的CSS样式具有相同选择器的网页的CSS样式,并按照获取的所述CSS样式和所述特定类别的CSS样式的级联优先级从低到高依次选择一CSS样式的规则声明的属性值给所述广告元素的规则声明的属性赋值。
6.根据权利要求4所述的广告过滤装置,其特征在于,所述装置还包括:
CSS样式匹配模块,用于根据所述CSS样式计算模块得到的结果获取所述广告元素的选择器对应的CSS规则声明,从以确定对应的CSS样式。
CN201410660037.7A 2014-11-18 2014-11-18 广告过滤方法及装置 Active CN105677654B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410660037.7A CN105677654B (zh) 2014-11-18 2014-11-18 广告过滤方法及装置
PCT/CN2015/085803 WO2016078442A1 (zh) 2014-11-18 2015-07-31 广告过滤方法及装置
US15/527,971 US10642924B2 (en) 2014-11-18 2015-07-31 Advertisement filtering method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410660037.7A CN105677654B (zh) 2014-11-18 2014-11-18 广告过滤方法及装置

Publications (2)

Publication Number Publication Date
CN105677654A CN105677654A (zh) 2016-06-15
CN105677654B true CN105677654B (zh) 2020-07-03

Family

ID=56013244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410660037.7A Active CN105677654B (zh) 2014-11-18 2014-11-18 广告过滤方法及装置

Country Status (3)

Country Link
US (1) US10642924B2 (zh)
CN (1) CN105677654B (zh)
WO (1) WO2016078442A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10567517B2 (en) * 2015-06-05 2020-02-18 Apple Inc. Web resource load blocking API
CN107634976B (zh) * 2016-07-18 2020-10-16 阿里巴巴集团控股有限公司 信息推送、获取、广告推送、获取方法及装置
CN107688577A (zh) * 2016-08-04 2018-02-13 广州市动景计算机科技有限公司 页面资源过滤方法、装置和客户端设备
US20180217964A1 (en) * 2017-02-02 2018-08-02 Futurewei Technologies, Inc. Content-aware energy savings for web browsing utilizing selective loading priority
CN108846061B (zh) * 2018-06-01 2022-04-29 北京金山云网络技术有限公司 屏蔽广告的方法、装置和终端设备
CN109885795A (zh) * 2019-01-25 2019-06-14 平安科技(深圳)有限公司 一种Web端动画配置方法及装置
CN110399580B (zh) * 2019-07-22 2023-03-28 腾讯科技(深圳)有限公司 浏览器中显示目标样式的方法及装置
CN111510646A (zh) * 2020-04-29 2020-08-07 京东方科技集团股份有限公司 拼接屏的视频显示方法、显示装置、计算机设备和介质
CN112149032B (zh) * 2020-09-11 2023-12-08 麒麟合盛网络技术股份有限公司 广告拦截方法及装置
CN114385167A (zh) * 2022-01-12 2022-04-22 平安普惠企业管理有限公司 前端页面生成方法、装置、设备及介质
CN117170734B (zh) * 2023-11-03 2023-12-29 成都数智创新精益科技有限公司 一种限定样式作用域的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101084474A (zh) * 2005-12-13 2007-12-05 松下电工株式会社 使用装置样式表控制嵌入式装置的系统和方法
CN103336702A (zh) * 2013-06-29 2013-10-02 广州市动景计算机科技有限公司 网页加载加速方法及装置
CN104133844A (zh) * 2014-06-27 2014-11-05 小米科技有限责任公司 加载网页的方法及装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020010757A1 (en) * 1999-12-03 2002-01-24 Joel Granik Method and apparatus for replacement of on-line advertisements
US8181104B1 (en) * 2004-08-31 2012-05-15 Adobe Systems Incorporated Automatic creation of cascading style sheets
US7596747B2 (en) * 2005-07-27 2009-09-29 Microsoft Corporation Incrementally parsing style sheets
US20070240041A1 (en) * 2006-04-05 2007-10-11 Larry Pearson Methods and apparatus for generating an aggregated cascading style sheet
US7685513B2 (en) * 2006-04-18 2010-03-23 Xerox Corporation Optimization of storage and delivery of markup language files
US8176205B2 (en) * 2008-02-14 2012-05-08 Research In Motion Limited Method, server and system for optimizing HTML-based content
US8775926B2 (en) * 2008-05-30 2014-07-08 Red Hat, Inc. Stylesheet conversion engine
CN101777048B (zh) * 2009-01-14 2013-04-03 国际商业机器公司 解决web应用复合中UI样式冲突的方法和装置
US8375296B2 (en) * 2010-06-30 2013-02-12 Samsung Electronics Co., Ltd. Reusing style sheet assets
US8522132B2 (en) * 2010-09-13 2013-08-27 International Business Machines Corporation Widget behavior customization via cascaded style sheets
US9805009B2 (en) * 2010-12-30 2017-10-31 Opera Software As Method and device for cascading style sheet (CSS) selector matching
US9104527B2 (en) * 2011-09-08 2015-08-11 Microsoft Technology Licensing, Llc Automatically generated style rules for page design
CN103064849B (zh) 2011-10-19 2017-04-12 深圳市世纪光速信息技术有限公司 一种层叠样式表处理方法和装置
US20130159839A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Semantic compression of cascading style sheets
CN104025068B (zh) * 2012-01-02 2017-06-13 国际商业机器公司 来自多个来源的css定义的冲突解决
US20150234798A1 (en) * 2012-06-01 2015-08-20 Google Inc. System and method for changing a web ui application appearance based on state through css selector cascading
CN104252412B (zh) * 2013-06-28 2017-12-29 国际商业机器公司 用于css冲突的自动检测的方法和系统
AU2014100875A4 (en) 2013-08-06 2014-09-04 New Bis Safe Luxco S.À R.L Methods, apparatus and systems for data sorting, visualisation and related applications
CN103927355A (zh) 2014-04-14 2014-07-16 北京金山网络科技有限公司 广告拦截方法、装置及系统
CN104021172B (zh) 2014-05-30 2017-07-28 北京搜狗科技发展有限公司 广告过滤方法及广告过滤装置
CN105786924B (zh) * 2014-12-25 2020-03-31 广州市动景计算机科技有限公司 网页夜间模式处理方法、装置及移动终端
US20170358012A1 (en) * 2016-06-14 2017-12-14 Brian Vallelunga Website Content Preserver

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101084474A (zh) * 2005-12-13 2007-12-05 松下电工株式会社 使用装置样式表控制嵌入式装置的系统和方法
CN103336702A (zh) * 2013-06-29 2013-10-02 广州市动景计算机科技有限公司 网页加载加速方法及装置
CN104133844A (zh) * 2014-06-27 2014-11-05 小米科技有限责任公司 加载网页的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IE11自带广告过滤自定义跟踪保护列表+CSS样式表屏蔽广告示例(以远景为例);劳维明;《远景论坛》;20140610;第1-26页 *
劳维明.IE11自带广告过滤自定义跟踪保护列表+CSS样式表屏蔽广告示例(以远景为例).《远景论坛》.2014, *

Also Published As

Publication number Publication date
US10642924B2 (en) 2020-05-05
CN105677654A (zh) 2016-06-15
WO2016078442A1 (zh) 2016-05-26
US20170351644A1 (en) 2017-12-07

Similar Documents

Publication Publication Date Title
CN105677654B (zh) 广告过滤方法及装置
US11675969B2 (en) Dynamic native content insertion
US10140368B2 (en) Method and apparatus for generating a recommendation page
CN103605688B (zh) 一种网页广告的拦截方法、装置和浏览器
US8489605B2 (en) Document object model (DOM) based page uniqueness detection
CN102436455B (zh) 实现文字浏览的方法、系统和客户端浏览器
US20150082151A1 (en) Page display method and device
US9563611B2 (en) Merging web page style addresses
CN105574176A (zh) 结合多数据源的热词推荐方法和装置
US20190065444A1 (en) Techniques for efficient & high-throughput web content-creation
CN106033450B (zh) 一种广告拦截的方法、装置和浏览器
CN104239298A (zh) 文本信息推荐方法、服务器、浏览器及系统
CN106844635A (zh) 网页中的元素的编辑方法及装置
CN113377373A (zh) 基于解析引擎的页面加载方法、装置、计算机设备及介质
CN106886547A (zh) 一种脚本生成方法与装置
CN105824965A (zh) 基于动态爬虫技术的数据源发现方法
CN103942231A (zh) 一种网页的显示方法及电子设备
CN102193789B (zh) 一种实现可配置跳转链接的方法和设备
CN108694043B (zh) 页面装修方法和系统
JPWO2018056299A1 (ja) 情報収集システム、情報収集方法、及び、プログラム
CN107077499B (zh) 用于内容管理系统的映射定义的生成
CN107622125B (zh) 一种信息爬取方法和装置、电子设备
US9195940B2 (en) Jabba-type override for correcting or improving output of a model
CN105224552A (zh) 网络信息的处理方法、装置、和系统
CN105373565A (zh) 网页处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 20200526

Address after: 310051 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 14 floor tower square

Applicant before: GUANGZHOU UCWEB COMPUTER TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant