广告过滤方法及广告过滤装置制造方法【专利摘要】本发明公开了一种广告过滤方法及广告过滤装置,其中的方法主要包括:监测到浏览器开启,启动后台线程读入预先设置的广告规则过滤库;解析读取的广告规则过滤库;接收网页获取请求,浏览器内核层截获网页获取请求对应网页中各资源的网址信息,调用解析的广告规则过滤库中的广告资源规则过滤子库,对获取的资源网址信息进行过滤。本发明提供的上述技术方案可以进一步广告过滤的扩展性以及过滤效果。【专利说明】广告过滤方法及广告过滤装置[0001]技术类别[0002]本发明涉及信息过滤技术,具体涉及广告过滤方法及广告过滤装置。【
背景技术:
】[0003]随着互联网的发展,通过客户端,例如,移动客户端或固定客户端接入互联网的用户数急速增多,而随着互联网的财富效应、用户数的增多以及用户业务扩展的应用,为用户提供应用程序服务的互联网网站(网页)数量也越来越多,例如,门户网站(新浪门户)、资讯(财经资讯)、苹果公司的应用商店、谷歌(Google)的应用商店以及国内的一些应用商店等,门户网站、资讯、应用商店提供的应用程序数量多,用户可以通过客户端的因特网浏览器(IE,InternetExplorer,简称浏览器)从相应站点浏览不同的应用程序以及资讯信息。但用户在获取应用程序服务的同时,一些互联网网站为了追求广告营销业务以及网站利益,在向用户提供的包含应用程序服务的网页中嵌入有一定量的广告,当用户浏览网站的网页时,该网站的广告就会在网页上加载显示。且随着广告业务的不断发展,网页中嵌入的广告还具有日益增多的趋势,使得用户不得不被动地接受广告,一方面,网页中过多的广告将占用不小的带宽,消耗用户流量,提升用户使用网络的成本,另一方面,目前,由于移动客户端的屏幕与处理能力等配置受限,且很多用户经常访问的互联网网站还没有提供针对移动客户端(例如,移动电话)的网页,网页中包含的大量广告,不仅遮拦了用户的视线,影响用户浏览网页内容的视觉效果,还由于浏览器加载广告影响浏览器的响应速度,导致网页加载速度的降低,浏览不畅,从而影响用户业务体验。因而,如何拦截、屏蔽嵌入在应用程序或网页中的广告,成为客户端用户迫切需要解决的技术问题。[0004]目前,对网页中的广告进行过滤的方法,大多通过在网络侧采用服务器进行广告过滤处理,例如,通过将广告拦截服务器部署在网关来监控网页数据包,并在广告拦截服务器中装载例如入侵防御系统(IPS,IntrusionPreventionSystem)、使用代理设置、域名服务器(DNS,DomainNameServer)不解析、DNS过滤器等,对发往各客户端的网页数据包,例如网页中包含的广告进行过滤,并将过滤广告的网页数据输出至客户端浏览器进行展示。但由于各客户端请求获取的网页数据包需要通过网关进行过滤处理,需要消耗用户流量,且各运营商设置的网关分别采用自定义过滤协议编辑广告过滤规则对网页中的广告进行过滤,广告过滤规则编写困难、通用性差,使得广告过滤方法可扩展性较差,过滤效果较差,降低了用户的业务体验。而且,目前还没有针对移动客户端进行广告过滤处理的技术方案。【
发明内容】[0005]本发明的目的在于,克服现有的不能针对客户端进行广告过滤处理所存在的技术问题,提供一种客户端广告过滤方法及广告过滤装置,所要解决的技术问题是提升广告过滤效果。[0006]本发明的目的以及解决其技术问题可以采用以下的技术方案来实现。[0007]依据本发明提出的一种广告过滤方法,其中,所述方法包括:[0008]监测到浏览器开启,启动后台线程读入预先设置的广告规则过滤库;[0009]解析读取的广告规则过滤库;[0010]接收网页获取请求,浏览器内核层截获网页获取请求对应网页中各资源的网址信息,调用解析的广告规则过滤库中的广告资源规则过滤子库,对获取的资源网址信息进行过滤。[0011]依据本发明实施例提供的一种广告过滤装置,其中,该装置包括:监测模块、解析模块、以及第一过滤模块,其中,[0012]监测模块,用于在监测到浏览器开启后,启动后台线程读入预先设置的广告规则过滤库;[0013]解析模块,用于解析读取的广告规则过滤库;[0014]第一过滤模块,用于接收网页获取请求,调用浏览器内核层截获网页获取请求对应网页中各资源的网址信息,调用解析的广告规则过滤库中的广告资源规则过滤子库,对获取的资源网址信息进行过滤。[0015]借由上述技术方案,本发明提供的广告过滤方法及广告过滤装置至少具有下列优点及有益效果:本发明实施例基于Adblock语法规范编辑广告规则过滤库,广告过滤规则编写容易、通用性好,使得广告过滤方法可扩展性好,有效提升过滤效果,增强了用户的业务体验;进一步地,广告规则过滤库中包括官方Adblock移动版不支持的不带域名的过滤规则与CSS过滤规则,通过对应网页中各子资源的网址信息的广告规则匹配,并过滤包含广告的网址信息,从而中断广告子资源的加载,节省用户流量,提升网页加载速度。[0016]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述以及其他目的、特征和优点能够更明显易懂,以下特举较佳的实施例,详细说明如下。【专利附图】【附图说明】[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0018]图1是本发明实施例提供的广告过滤方法流程示意图;[0019]图2是本发明实施例提供的广告过滤装置结构示意图。【具体实施方式】[0020]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,说明书所描述的实施例仅仅是本发明部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员依次所获得的、而没有经过创造性劳动付出的其他实施例,都属于本发明保护的范围。[0021]移动客户端的操作系统,例如,Android操作系统或iOS操作系统一般采用Webkit作为浏览器内核,用于在从网站获取网页数据后,解析网页数据语法并将解析得到的内容进行渲染,从而生成在移动客户端浏览器中展示的网页。其中,Webkit是一个开源的浏览器引擎,包含WebCore排版引擎与V8JS引擎。[0022]客户端的浏览器包括:IE核浏览器(包括双核浏览器的兼容模式)以及非IE核浏览器。其中,IE核浏览器是以微软公司Windows系统内的IE内核为基础开发的浏览器。例如,IE浏览器、360安全浏览器、世界之窗浏览器、遨游浏览器、急速浏览器、搜狗浏览器兼容模式以及腾讯浏览器等。非IE核浏览器是不依赖IE内核的、拥有自主开发内核的浏览器,非IE核浏览器相对于IE核浏览器来说,通常拥有更强大的JS与CSS功能接口与较快的加载速度,可适应多种操作系统平台。例如,火狐浏览器(MozillaFirefox)>Opera浏览器、谷歌浏览器(GoogleChrome)、苹果Safari浏览器、搜狗浏览器高速模式等。[0023]目前,基于IE核浏览器的广告过滤规则通过语法规范进行编辑生成,其中,基于Adblock语法规范编辑得到的广告过滤规则应用较为广泛。[0024]Adblock最早是由MozillaFirefox提供的一个基于核浏览器并设置在网络侧的广告过滤扩展,用于网页广告过滤,是一个开源项目,也是目前最流行的广告过滤扩展,允许用户拦截包括广告在内的网页中的各种子资源,并使拦截的网页子资源对应的网页数据不被下载和显示,例如,可以根据内容的源地址拦截用户发起的用于获取网页的HTTP请求,并可过滤IFrame、Script及Flash,也可以利用自动生成的用户层叠样式表来隐藏包括文字广告在内的网页子资源。在Adblock基础上扩展的AdblockPlus,维护的广告过滤规则库信息量大,覆盖面广,并可以使用通配符或正则表达式来拦截广告。[0025]本发明实施例中,考虑将Adblock广告过滤规则应用于客户端,提出的基于客户端侧的广告过滤方法,适用于内核浏览器以及非内核浏览器,通过在客户端侧设置广告规则过滤库(List),并使设置的广告规则过滤库遵从标准的Adblock语法规范,从而可进行用户定制,和/或,加载标准的Adblock官方广告规则过滤库。这样,在客户端侧采用通用广告过滤规则结合自定义广告过滤规则进行广告过滤,相对于在服务器侧通过自定义协议编写广告过滤规则,对广告进行过滤处理,广告过滤规则编写较易、通用性好,广告过滤效果佳。[0026]实施例一、广告过滤方法。[0027]图1是本发明实施例提供的广告过滤方法流程示意图。参见图1,该流程包括:[0028]步骤101,监测到浏览器开启,启动后台线程读入预先设置的广告规则过滤库;[0029]本步骤中,当监测到用户打开、启动浏览器后,操作系统后台启动一线程,并可通过读写锁控制启动的线程安全,将预先存储或设置的广告规则过滤库读入内存。[0030]本发明实施例中,线程安全是指应用程序所提供的接口对于线程来说是原子操作,或者,多个线程之间的切换不会导致该接口的执行结果存在二义性。也就是说,假设一代码段所在的进程中有多个线程在同时运行,而该多个线程可能会同时运行该代码段,如果每次运行结果和单线程运行的结果相同、且其他的变量的值与预期相一致,表明线程是安全的。换句话说,线程安全问题都是由全局变量及静态变量引起的,如果每个线程中对全局变量、静态变量只有读操作,而无写操作,则该全局变量是线程安全的。[0031]本发明实施例中,作为可选实施例,广告规则过滤库基于Adblock语法规范编辑得到,所述广告规则过滤库基于Adblock语法规范编辑得到包括:[0032]实现对Adblock语法规范的解析,并为解析后的所述Adblock语法规范建立数据结构,为后续过滤工作服务。其中,所述数据结构中包含用于广告规则过滤库的广告规则表达式。[0033]本步骤中,作为可选实施例,可以使用C++程序语言实现对Adblock语法规范的解析,并根据解析得到的Adblock语法规范,建立利用C++程序语言实现的数据结构,从而可以识别设置的广告规则过滤库,从中读取写入的各广告规则表达式。当然,实际应用中,也可以利用其它程序语言实现对Adblock语法规范的解析,例如,Java程序语言等,在此不再--例举。[0034]本发明实施例中,作为一可选实施例,预先设置的广告规则过滤库可以由服务器设置并下发至客户端。作为另一可选实施例,预先设置的广告规则过滤库也可以由用户直接在客户端中设置并存储。[0035]本发明实施例中,基于Adblock语法规范编辑的广告规则过滤库支持常用的通配符*、||、~以及类型选项,并且通过扩展,支持不带域名的全局(Global)规则以及针对移动网站的过滤规则库,可实现PC网站与移动网站全覆盖。具体来说,广告规则过滤库包括:广告资源规则过滤子库以及广告隐藏规则过滤子库。其中,[0036]广告资源规则过滤子库用于对网页中包含的子资源设置过滤规则,例如,针对网页中的图片、Flash、JS、文字、音视频等子资源设置过滤规则。包括:通配符匹配表达式以及正则(字符串)匹配表达式。其中,通配符匹配表达式以及特定符号表达式又可称之为广告规则表达式。[0037]通配符匹配表达式,是指主要由星号(*)、和/或,问号(?)、和/或,连接符(II)构成的一种特殊语句,用于进行模糊匹配。本发明实施例中,可以使用星号代替零个、一个或多个字符,用问号代替一个字符。例如,通配符匹配表达式可以是:2100book.com/themes/v2/images/top_*.jpg>acookie.氺.gif?>baidu.com/*/egg*,swf等。其中,[0038]*,星号,作为通配符,匹配任何字符串;[0039]?,问号,作为通配符,匹配任一字符串;[0040]II,连接符,可连接任何其他字符串,与通配符*类似。[0041]特定符号表达式,是指对字符串操作的一种逻辑公式,即利用预先定义的特定字符以及特定字符的组合,组成规则字符串,该规则字符串用于表达对字符串的一种过滤逻辑。例如,特定符号表达式与通配符相结合形成的广告规则表达式可以为:[0042]/://([~/]+\.)?amazon\.com['-\.%a-zA-ZO-9].*/getaanad\?;[0043]/://([~/]+\.)?bergen\.com['-\.%a-zA-ZO-9].*/sponsoredby-/;[0044]/://([~/]+\.)?boago\.com[~_\.%a-zA-ZO-9].*_Takeover_/等。其中,[0045]_,资源过滤规则白名单起始:列入白名单的网站及对象;[0046]/,中断符,以此为终点,其后(或前)不能有其他字符串;[0047]~,分隔符,可以为除数字、字母、以外的其他符号;[0048]_#,隐藏规则白名单起始;[0049]##,隐藏规则起始。其中,.指类(class)名,#指id名,例如,##〈Tag>./#〈Name>。其中,标签(Tag)可为*通配。[0050]$,资源过滤类型选项起始,类型选项可以是Scriptimageobject等。[0051]较佳地,在通配符匹配表达式以及正则(字符串)匹配表达式中,按照写入的过滤规则是否包含域名,广告资源规则过滤子库中的广告规则表达式又可分为:带域名的过滤规则以及不带域名的过滤规则。例如,xyz.com#DIV(id=ad)为带域名的过滤规则,表示拦截域名(xyz.com)上的广告;*/banners/*为不带域名的过滤规则,表示拦截任何在目录"banners"中的内容。[0052]所应说明的是,本发明实施例中,通配符匹配表达式、特定符号表达式、带域名的过滤规则以及不带域名的过滤规则只是对广告规则表达式的不同分类结果,带域名的过滤规则可以采用通配符匹配表达式,也可以采用特定符号表达式。实际应用中,可根据过滤需求,设置广告规则表达式为上述之一或任意组合。[0053]下面结合通配符匹配表达式、特定符号表达式、带域名的过滤规则以及不带域名的过滤规则,对广告资源规则过滤子库中的广告规则表达式再举例说明。例如,将abc.com网站列入白名单,编写的广告规则表达式可以为:[0054]OOhttp://www.abc.com/。[0055]拦截网站xy的广告,编写的广告规则表达式可以为:[0056]/xy\.com(.*/adv/|/a['u])(?!vision)/。[0057]再例如,如果编写的广告规则表达式为:|Iexample,com/banner,gif,则表示将过滤例如:http://example,com/banner,gif、https://example,com/banner,gif以及http://www.example,com/banner,gif的网址信息,而不会过滤例如http://badexample.com/banner,gif的网址信息。[0058]对于swfI(以swf结尾的url),出现在网址的结尾。例如,如果编写的广告规则表达式为:swfI,表示过滤:http://example,com/annoyingflash,swf,而不会过滤:http://example,com/swf/index,html。[0059]对于http://example,com'(可以匹配http://example,com/xxx但是不能匹配http://example.com.cn);例如,如果编写的广告规则表达式为:http://example,com",表示对http://example,com/及http://example,com:8000/进行过滤,而不会过滤:http://example,com.ar/。[0060]对于无域名的过滤规则:[0061].com/js/adsense(无域名的规则);[0062]$domain=example,com|xxx.com(过滤规则类型选项,只过滤后面注明的域名);[0063]$script,object,image(过滤规则类型选项,过滤前面规则命中页面内的所有script等)ο[0064]广告隐藏规则过滤子库用于对网页中包含的子资源设置CSS隐藏规则,采用特定符号表达式进行描述,包括带域名的CSS隐藏规则以及不带域名的CSS隐藏规则。例如:[0065]domain1.example,domain2.example,domain3.example##*,sponsor(隐藏指定域名下的所有元素class为sponsor的节点);[0066]##div.textad(无域名全局CSS隐藏规则隐藏div元素class为testad的节点);[0067]##div#sponsorad(无域名全局CSS隐藏规则隐藏div元素id为sponsorad的节点);[0068]##table[width=〃80%〃](无域名全局CSS隐藏规则内嵌样式匹配);[0069]#@#(隐藏规则白名单);[0070]##div[title"=〃adv〃][title$=〃ert〃]表示隐藏title属性开头为adv及结尾为ert的div元素。[0071]实际应用中,为了满足用户的多样化广告过滤需求,本发明实施例还可以设置CSS隐藏规则为如下的表达式:[0072]{display:none;/*不占据空间,无法点击*/};[0073]{visibility:hidden;/*占据空间,无法点击*/};[0074]{position:absolute;top:-999em;/*不占据空间,无法点击*/};[0075]{position:relative;top:_999em;/*占据空间,无法点击*/};[0076]{position:absolute;visibility:hidden;/*不占据空间,无法点击*/};[0077]{height:O;overflow:hidden;/*不占据空间,无法点击*/}等。[0078]这样,通过设置的广告规则过滤库,后续应用中可以实现:统一资源定位符(URL,UniformResourceLocator)过滤及屏蔽、特定文件格式(flash文件格式、gif文件格式等)过滤及屏蔽。[0079]本发明实施例中,在设置广告规则过滤库时,可以是通过收集移动广告平台(网站)或固定广告平台的广告特征码,并根据收集的广告特征码设置对应的广告规则表达式。其中,广告特征码可以是网页网址、IP地址、域名、广告代码中包含的固定字符等。[0080]步骤102,解析读取的广告规则过滤库;[0081]本步骤中,作为可选实施例,可以利用C++程序语言实现Adblock语法规范的解析,并根据解析得到的Adblock语法规范,识别设置的广告规则过滤库,从中读取写入的各广告规则表达式。即广告规则过滤库可以通过C++程序语言编写的解析程序代码段进行解析,从而将广告规则过滤库转换成基于Adblock语法规范(预设数据结构)的规则池(广告资源规则过滤子库以及广告隐藏规则过滤子库),以备后续使用。[0082]本发明实施例中,由于设置的广告规则过滤库可支持Adblock语法规范,包括官方Adblock移动版不支持的无域名URL(不带域名的过滤规则)与CSS过滤规则,因而,相对于自定义规则进行广告过滤的技术方案,拥有更强扩展性与过滤效果。[0083]步骤103,接收网页获取请求,浏览器内核层截获网页获取请求对应网页中各资源的网址信息,调用解析的广告规则过滤库中的广告资源规则过滤子库,对获取的资源网址信息进行过滤。[0084]本步骤中,资源网址信息包括:域名信息、统一资源定位符信息、统一资源标识符信息(URI,UniformResourceIdentifier)、统一资源名称信息(URN,UniformResourceName)等。[0085]本发明实施例中,网页中的每一资源,例如,网页中包含的文字、图片、音视频、Flash、JS,对应有相应的资源网址信息,例如,统一资源定位符信息,在用户通过客户端的浏览器发送网页获取请求后,首先获取网页中各资源的统一资源定位符信息,将各资源的统一资源定位符信息与广告资源规则过滤子库中的广告规则表达式进行匹配,广告规则表达式包括多个预设广告规则和多个预设广告规则之间的逻辑关系,当统一资源定位符信息触发多个预设广告规则中的任一预设广告规则,且符合所述逻辑关系时,则确定该统一资源定位符信息与所述广告规则表达式匹配。例如,假设某一资源网址信息为:http://WWW.A.com/b/c,如果广告资源规则过滤子库中的广告规则表达式中存在域名www.A.com,则可确定咨源网址信息httD://Ww.A.com/b/c与广告规则表汰式相匹配,从而将该咨源网址信息过滤掉。再例如,如果广告规则表达式为*.configs/article/ad.js,而资源网址信息为A.configs/article/ad.js,则资源网址信息符合该广告规则表达式的逻辑关系,确定该资源网址信息与该广告规则表达式匹配。再例如,如果广告规则表达式为mydrivers.com/002f/*x*.htm,则资源网址信息mydrivers.com/002f/BxC.htm符合该广告规则表达式的逻辑关系,确定该资源网址信息与该广告规则表达式匹配。在将匹配的统一资源定位符信息过滤掉后,再根据匹配后获取的统一资源定位符信息获取相关的资源数据。[0086]本发明实施例中,如果广告规则表达式为带域名的过滤规则,对获取的资源网址信息进行过滤具体可以为:[0087]提取资源网址信息对应的域名信息,查询带域名的过滤规则,获取提取的域名信息对应的过滤规则;[0088]根据获取的过滤规则对资源网址信息进行过滤处理。[0089]本发明实施例中,可以通过哈希匹配关键词算法获取域名信息。例如,资源网址信息为:http://example,com/ads/banner,gif,则经过哈希匹配关键词算法处理后,提取的域名信息为example,com,根据example,com查询带域名的过滤规则,获取example,com对应的过滤规则,例如,为http://example,com/ads/banner*,gif,则http://example,com/ads/banner,gif与http://example,com/ads/banner*,gif匹配,从而设置资源网址信息http://example,com/ads/banner,gif的哈希匹配值属性为真,表示将该资源网址信息过滤掉。这样,通过域名信息进行匹配,可以有效减少广告过滤所需的资源。[0090]如果广告规则表达式为不带域名的过滤规则,对获取的资源网址信息进行过滤具体可以为:[0091]依序提取资源网址信息对应的哈希匹配关键词信息,查询不带域名的过滤规则,获取提取的哈希匹配关键词信息对应的过滤规则;[0092]根据依序获取的过滤规则对资源网址信息进行过滤处理。[0093]本发明实施例中,不带域名的过滤规则为全局匹配,可以通过哈希匹配关键词算法获取哈希匹配关键词信息。例如,资源网址信息为:.com/js/adsense,则经过哈希匹配关键词算法处理后,提取的哈希匹配关键词信息为.com/js/、com/js/a、om/js/ad以及m/js/ads,查询不带域名的过滤规则,依序获取.com/js/、com/js/a>om/js/ad以及/js/ads对应的过滤规则,例如,根据.com/js/获取的过滤规则为.com/js/adsense,则资源网址信息与过滤规则相匹配,设置资源网址信息http://example,com/ads/banner,gif的哈希匹配值属性为真,表示将该资源网址信息过滤掉,这样,无须再进行查询,如果不相匹配,再根据com/js/a获取过滤规则并进行匹配,如此直至最后一个哈希匹配关键词信息。[0094]本发明实施例中,可以通过C++程序语言的浏览器内核层,截获网页获取请求对应网页中各资源网址信息,并利用广告规则过滤库中的广告资源规则过滤子库(Adblock规则)进行匹配过滤,从而过滤掉包含广告内容的资源网址信息,可以避免浏览器针对该过滤的资源网址信息发起数据获取请求,从而无需从该资源网址信息对应的网页下载广告内容数据(例如,文字、图片、音视频、JS等),可以有效减少HTTP请求(网页获取请求或数据获取请求)数量,提升网页浏览速度,加快了网页加载速度,并有效节省用户流量。即在浏览器内核处理最后得到的网页资源(图片,JS等网页数据)的加载过程中,在发起网页获取请求对应的网页数据之前,进行广告规则过滤库中的规则匹配,并根据规则匹配结果判断是否需要中断网页中广告资源的加载,如果确定需要中断广告资源的加载,则可以有效提升网页浏览速度,节省用户流量,从而提升广告过滤效果。[0095]本发明实施例中,如果通过客户端底层(C++程序语言的底层)实现广告过滤,例如,在客户端所使用的操作系统上撰写底层过滤代码,通过撰写的底层过滤代码对网页获取请求的内容进行特征码分析,获得该请求的特征码,从而将获得的特征码与广告规则过滤库中广告规则表达式中的广告特征码进行比对,如果请求的特征码与广告规则表达式中的广告特征码相匹配,则按照匹配的广告规则表达式进行处理,还可以有效提升广告过滤效率并可适应于具有内核支持的浏览器。而如果通过通信层实现广告过滤,可通过通信层的协议处理器获取浏览器待访问页面的网址信息,其中,协议处理器是微软提供的一个标准接口,客户端可通过调用InternetSession::RegisterNameSpace来注册相关的协议处理器,进而通过该协议处理器处理相应的协议。举例来说,如果调用了超文本传输协议(HTTP,Hypertexttransferprotocol)处理器,贝U可通过HTTP协议处理器获取访问的HTTP类型网页的网址信息。[0096]作为可选实施例,还可以对过滤得到的资源网址信息进行后续处理,因而,该方法还可以进一步包括:[0097]步骤104,获取过滤后得到的资源网址信息对应的资源,利用解析的广告规则过滤库中的广告隐藏规则过滤子库,对过滤掉的资源网址信息对应的资源进行隐藏处理,并将获取的资源与进行隐藏处理的资源按照客户端浏览器屏幕属性组合为网页并展示。[0098]本步骤中,客户端浏览器屏幕属性包括:屏幕尺寸、分辨率、字体大小、颜色、子资源位置等。[0099]作为可选实施例,隐藏处理包括层叠样式表隐藏处理或官方Adblock移动版不支持的不带域名的过滤规则隐藏处理。[0100]本发明实施例中,浏览器内核层次的广告过滤包含两步流程,首先是在用户发起URL请求(网页获取请求)时,查询广告规则过滤库中的规则池(广告资源规则过滤子库)是否阻止该网页获取请求对应的某些资源,其次,在浏览器内核解析广告规则过滤库中的CSS过滤规则(广告隐藏规则过滤子库)时,查询过滤掉的子资源是否需要注入隐藏层叠样式表的隐藏规则。[0101]本发明实施例中,也可以在解析广告规则过滤库的同时或之后,浏览器内核处理用户打开网页的请求(网页获取请求)。如果是在解析广告规则过滤库的同时进行网页获取请求对应的资源过滤,可以在解析广告规则过滤库的同时,利用解析的广告规则过滤库对资源对应的统一资源定位符信息进行过滤,从而以并发的方式执行广告过滤,有效减少网页广告过滤所需的时间,提升网页访问速度。[0102]实际应用中,可以利用包括层叠样式表和动态JavaScript的网页呈现引擎,将获取的资源与进行层叠样式表隐藏处理的资源进行整合并来生成网页以向用户展示。[0103]本发明实施例中,由于广告隐藏规则过滤子库中的CSS隐藏规则支持指定域名的CSS隐藏规则与全局CSS隐藏规则,使得最终展现的网页可媲美PC端过滤效果。例如,应用本发明实施例的广告过滤方法,启动浏览器,并在浏览器网页访问地址栏中输入相关网址信息,可以明显提高网页打开速度,且经过过滤处理后的网页非常清爽,可屏蔽大多数过滤掉的资源网址信息对应的资源对应的条幅(Banner)广告、并且被屏蔽的区域(过滤掉的条幅广告所在的区域)没有残余的白条,在被屏蔽的区域中也不会受其他应用程序(APP)推广遮罩骚扰,即不会加载其它应用程序推广遮罩,影响使用体验。进一步地,对于冷门网站,本发明实施例的广告过滤方法,由于具有强大的Adblock语法规范解析,可以利用强大的Adblock规则库(广告规则过滤库)实现对冷门网站中广告的过滤,覆盖面广,而自定义编写的规则一般无法实现广告过滤覆盖。[0104]较佳地,该方法还可以进一步包括:[0105]步骤105,从服务器获取最新的广告规则过滤库,并利用获取的广告规则过滤库更新存储的广告规则过滤库。[0106]本步骤中,广告规则过滤库由服务器设置并按照预先设置的规则更新策略下发至客户端,或由用户直接在客户端中设置并存储。其中,规则更新策略可以是通过定时的方式,例如,每隔一天或一周,浏览器向服务器发送广告规则过滤库更新请求,以查询服务器中是否存在更新的广告规则过滤库,如服务器中存在更新,可通过客户端操作系统后台下载更新的广告规则过滤库,以备客户端下次启动浏览器后使用。实际应用中,规则更新策略也可以是通过不定时的方式从服务器获取并实现更新。[0107]本发明实施例中,广告规则过滤库支持服务器更新,例如,浏览器在每次解析完广告规则过滤库之后,检测广告规则过滤库是否需要更新,以保证移动终端拥有最新、最准确的过滤规则。较佳地,浏览器在每次解析完广告规则过滤库之后,并在浏览器的空闲时期检测广告规则过滤库是否需要更新。通过在服务器存储广告规则过滤库并维护更新,可供不同客户端用户以及固定设备用户下载使用。[0108]较佳地,该方法还可以进一步包括:[0109]服务器接收用户通过客户端设置的更新广告规则,更新存储的广告规则过滤库。[0110]本步骤中,用户在客户端中设置了新的广告规则后,可以将设置的更新广告规则上传至服务器,以对服务器存储的广告规则过滤库进行更新。即服务器接收更新广告规则后,匹配存储的广告规则过滤库,如果能够匹配上,则不作处理,如果不能匹配上,则将接收的更新广告规则置于广告规则过滤库中。这样,根据用户的反馈(如新出现的网页广告等)对广告规则过滤库中的广告规则表达式进行编辑,以使广告规则过滤库能够及时更新,从而能够对广告进行有效拦截。当然,实际应用中,为了提高广告过滤的可靠性,对于用户上传的更新广告规则,在更新存储的广告规则过滤库之前,该方法可以进一步包括:[0111]统计接收的更新广告规则次数,如果确定统计次数、和/或,单位时间内的统计次数超过对应设置的阈值,执行所述更新存储的广告规则过滤库,否则,不作处理。[0112]进一步地,还可以将网页中确定为广告的内容,例如,文字、图片、音视频、Flash、JS等放置于预先设置的与网页不同页面的广告张贴板,在接收到用户的广告查询请求时,展示所述广告张贴版,以供用户查询使用。其中,在展示过滤的广告对应的网页时,可以在网页预设的位置处设置广告过滤详情链接,用户点击该广告过滤详情链接,触发生成广告查询请求。广告张贴板在客户端侧形成新的页面,而非网页获取请求对应的网页。当然,实际应用中,还可以按照广告隐藏规则过滤子库的CSS隐藏规则设置,采用固定格式的图片、提示文字甚至是用户互动信息替换原来网页获取请求对应的网页中的广告内容。较佳地,还可以根据确定为广告的内容的类型,将该确定为广告的内容替换为所述类型对应的预设内容。其中,广告内容可包括:图片内容、文字内容及链接内容等,文字内容类型包括:超文本标记语言(HTML,HypertextMarkupLanguage)类型以及可扩展标记语言(XML,ExtensibleMarkupLanguage)类型等,链接内容类型包括:基于对象和事件驱动的客户端脚本语言(JS,JavaScript)类型、HTML类型以及XML类型等,图片内容类型包括:可移植网络图形格式(PNG,PortableNetworkGraphicFormat)类型以及图像文件格式(GIF,GraphicsInterchangeFormat)类型等。广告内容类型还可以为其他能够显示页面内容的类型,本发明对此不做限定。预设内容可为根据不同广告内容类型的预设的、具有空内容信息或者其他不影响加载和显示的内容的页面。例如,如果广告内容类型为GIF类型,则预设内容可以为一个空白的GIF,并将该空白的GIF发送至移动终端浏览器进行网页加载,再例如,如果广告内容类型为PNG类型,则预设内容可以为PNG格式的空图片或者其他不影响加载和显示的内容。[0113]实际应用中,由于本发明实施例的广告规则过滤库采用Adblock通用规则库,数量较大,因而,可能含有一些影响用户正常使用的广告规则。因而,较佳地,可以进一步将影响用户正常使用的广告规则进行剔除。此外,Adblock通用规则库虽然过滤范围广、过滤效果较佳,但需要占用较大的存储空间(1.5M左右),因而,较佳地,可以进一步对广告规则过滤库进行优化,例如,可以采用优化的三个小规则过滤库:chinalist、sogoupclist以及sogoumobilelist。关于对广告规则过滤库进行优化的流程,在此不再--例举。[0114]实施例二、广告过滤装置。[0115]图2是本发明实施例提供的广告过滤装置结构示意图。参见图2,该装置为客户端,包括:监测模块、解析模块以及第一过滤模块,其中,[0116]监测模块,用于在监测到浏览器开启后,启动后台线程读入预先设置的广告规则过滤库;[0117]本发明实施例中,作为可选实施例,广告规则过滤库基于Adblock语法规范编辑得到。利用C++程序语言实现对Adblock语法规范的解析,并为解析后的所述Adblock语法规范建立利用C++程序语言实现的数据结构,为后续过滤工作服务。其中,[0118]广告规则过滤库通过编辑广告规则表达式实现,包括:广告资源规则过滤子库以及广告隐藏规则过滤子库,广告规则表达式包括多个预设广告规则和所述多个预设广告规则之间的逻辑关系。具体来说,广告规则表达式包括:通配符匹配表达式、和/或,特定符号表达式。广告资源规则过滤子库由通配符匹配表达式、和/或,特定符号表达式构建,广告隐藏规则过滤子库由层叠样式(CSS)中的选择器(Selector)列表构建。[0119]本发明实施例中,广告规则过滤库可以由服务器设置并下发至客户端,或者,由用户直接在客户端中设置并存储。[0120]本发明实施例中,在设置广告规则过滤库时,可以是通过收集移动广告平台(网站)或固定广告平台的广告特征码,并根据收集的广告特征码设置对应的广告规则表达式。其中,广告特征码可以是网页网址、IP地址、域名、广告代码中包含的固定字符等。[0121]解析模块,用于解析读取的广告规则过滤库;[0122]第一过滤模块,用于接收网页获取请求,调用浏览器内核层截获网页获取请求对应网页中各资源的网址信息,调用解析的广告规则过滤库中的广告资源规则过滤子库,对获取的资源网址信息进行过滤。[0123]本发明实施例中,资源网址信息包括:域名信息、统一资源定位符信息、统一资源标识符信息、统一资源名称信息等。[0124]作为可选实施例,第一过滤模块包括:接收单元、网址信息获取单元、调用单元以及过滤单元,其中,[0125]接收单元,用于接收网页获取请求;[0126]网址信息获取单元,用于获取网页获取请求对应网页中各资源的网址信息,并将获取的资源网址信息输出至过滤单元,通知调用单元;[0127]本发明实施例中,可以通过C++程序语言的浏览器内核层,截获网页获取请求对应网页中各资源的网址信息。[0128]调用单元,用于在接收到通知后,调用解析的广告规则过滤库中的广告资源规则过滤子库,输出至过滤单元;[0129]过滤单元,用于将接收的各资源的网址信息与广告资源规则过滤子库中的广告规则表达式进行匹配,所述广告规则表达式包括多个预设广告规则和多个预设广告规则之间的逻辑关系,当资源网址信息触发多个预设广告规则中的任一预设广告规则,且符合所述逻辑关系时,则确定该资源网址信息与所述广告规则表达式匹配,并将该资源网址信息过滤掉。[0130]作为可选实施例,该装置还可以进一步包括:[0131]第二过滤模块,用于获取过滤后得到的资源网址信息对应的资源,利用解析的广告规则过滤库中的广告隐藏规则过滤子库,对过滤掉的资源网址信息对应的资源进行隐藏处理,将获取的子资源与进行隐藏处理的资源按照客户端浏览器屏幕属性组合为网页并展/Jnο[0132]本发明实施例中,隐藏处理包括层叠样式表隐藏处理或官方Adblock移动版不支持的不带域名的过滤规则隐藏处理。[0133]第二过滤模块还可以进一步用于将网页中确定为广告的内容放置于预先设置的与网页不同页面的广告张贴板,在接收到用户的广告查询请求时,展示所述广告张贴版。[0134]实际应用中,第二过滤模块还可以进一步用于确定广告内容的类型,并将该确定的广告内容替换为所述类型对应的预设内容。[0135]较佳地,该装置进一步包括:[0136]更新模块,用于按照预先设置的规则更新策略,从服务器获取更新的广告规则过滤库,并利用获取的广告规则过滤库更新存储的广告规则过滤库。[0137]通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。[0138]本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或者系统的实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。[0139]以上对本发明所提供的广告过滤方法和广告过滤装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。【权利要求】1.一种广告过滤方法,其特征在于,包括:监测到浏览器开启,启动后台线程读入预先设置的广告规则过滤库;解析读取的广告规则过滤库;接收网页获取请求,浏览器内核层截获网页获取请求对应网页中各资源的网址信息,调用解析的广告规则过滤库中的广告资源规则过滤子库,对获取的资源网址信息进行过滤。2.如权利要求1所述的方法,其特征在于,所述方法进一步包括:获取过滤后得到的资源网址信息对应的资源,利用解析的广告规则过滤库中的广告隐藏规则过滤子库,对过滤掉的资源网址信息对应的资源进行隐藏处理,并将获取的资源与进行隐藏处理的资源按照客户端浏览器屏幕属性组合为网页并展示。3.如权利要求2所述的方法,其特征在于,所述隐藏处理包括层叠样式表隐藏处理或官方Adblock移动版不支持的不带域名的过滤规则隐藏处理。4.如权利要求3所述的方法,其特征在于,所述广告隐藏规则过滤子库中的层叠样式表隐藏规则支持指定域名的层叠样式表隐藏规则与全局层叠样式表隐藏规则。5.如权利要求3所述的方法,其特征在于,所述隐藏处理的方式包括:屏蔽过滤掉的资源网址信息对应的资源所在的区域,且屏蔽的区域无残余白条,以及所述屏蔽的区域不加载其它应用程序推广遮罩。6.如权利要求1所述的方法,其特征在于,所述方法进一步包括:从服务器获取最新的广告规则过滤库,并利用获取的广告规则过滤库更新存储的广告规则过滤库。7.如权利要求1所述的方法,其特征在于,所述广告规则过滤库包括层叠样式表过滤处理或官方Adblock移动版不支持的不带域名的过滤规则,并基于Adblock语法规范编辑得到。8.如权利要求7所述的方法,其特征在于,所述广告规则过滤库基于Adblock语法规范编辑得到包括:实现对Adblock语法规范的解析,并为解析后的所述Adblock语法规范建立数据结构,所述数据结构中包含用于广告规则过滤库的广告规则表达式,所述广告规则表达式包括多个预设广告规则和所述多个预设广告规则之间的逻辑关系。9.如权利要求8所述的方法,其特征在于,所述资源网址信息包括:统一资源定位符信息,所述对获取的资源网址信息进行过滤包括:将各资源的统一资源定位符信息与广告资源规则过滤子库中的广告规则表达式进行匹配,当统一资源定位符信息触发多个预设广告规则中的任一预设广告规则,且符合所述逻辑关系时,则确定该统一资源定位符信息与所述广告规则表达式匹配,将该统一资源定位符信息过滤掉。10.如权利要求1至9任一项所述的方法,其特征在于,所述广告资源规则过滤子库包括:利用所述广告规则表达式编辑的带域名的过滤规则以及不带域名的过滤规则。11.如权利要求10所述的方法,其特征在于,所述广告资源规则过滤子库为带域名的过滤规则,所述对获取的网址信息进行过滤包括:提取子资源的网址信息对应的域名信息,查询带域名的过滤规则,获取提取的域名信息对应的过滤规则;根据获取的过滤规则对资源网址信息进行过滤处理。12.如权利要求10所述的方法,其特征在于,所述广告资源规则过滤子库为不带域名的过滤规则,所述对获取的网址信息进行过滤包括:依序提取资源网址信息对应的哈希匹配关键词信息,查询不带域名的过滤规则,获取提取的哈希匹配关键词信息对应的过滤规则;根据依序获取的过滤规则对资源网址信息进行过滤处理。13.如权利要求12所述的方法,其特征在于,所述方法进一步包括:统计接收的更新广告规则次数,如果确定统计次数、和/或,单位时间内的统计次数超过对应设置的阈值,更新服务器存储并用于下发至客户端的广告规则过滤库,否则,不作处理。14.一种广告过滤装置,其特征在于,该装置包括:监测模块、解析模块、以及第一过滤模块,其中,监测模块,用于在监测到浏览器开启后,启动后台线程读入预先设置的广告规则过滤库;解析模块,用于解析读取的广告规则过滤库;第一过滤模块,用于接收网页获取请求,调用浏览器内核层截获网页获取请求对应网页中各资源的网址信息,调用解析的广告规则过滤库中的广告资源规则过滤子库,对获取的资源网址信息进行过滤。15.如权利要求14所述的装置,其特征在于,所述装置进一步包括:第二过滤模块,用于获取过滤后得到的资源网址信息对应的资源,利用解析的广告规则过滤库中的广告隐藏规则过滤子库,对过滤掉的资源网址信息对应的资源进行隐藏处理,并将获取的资源与进行隐藏处理的资源按照客户端浏览器屏幕属性组合为网页并展/Jnο16.如权利要求14所述的装置,其特征在于,所述装置进一步包括:更新模块,用于按照预先设置的规则更新策略,从服务器获取更新的广告规则过滤库,并利用获取的广告规则过滤库更新存储的广告规则过滤库。17.如权利要求14或15或16所述的装置,其特征在于,所述第一过滤模块包括:接收单元、网址信息获取单元、调用单元以及过滤单元,其中,接收单元,用于接收网页获取请求;网址信息获取单元,用于获取网页获取请求对应网页中各资源的网址信息,并将获取的资源网址信息输出至过滤单元,通知调用单元;调用单元,用于在接收到通知后,调用解析的广告规则过滤库中的广告资源规则过滤子库,输出至过滤单元;过滤单元,用于将接收的各资源的资源网址信息与广告资源规则过滤子库中的广告规则表达式进行匹配,所述广告规则表达式包括多个预设广告规则和多个预设广告规则之间的逻辑关系,当资源网址信息触发多个预设广告规则中的任一预设广告规则,且符合所述逻辑关系时,则确定该资源网址信息与所述广告规则表达式匹配,并将该资源网址信息过滤掉。【文档编号】G06F17/30GK104021172SQ201410239989【公开日】2014年9月3日申请日期:2014年5月30日优先权日:2014年5月30日【发明者】陈晨,张伟申请人:北京搜狗科技发展有限公司