广告过滤算法实现及优化

一 广告过滤综述

互联网已无处不在的今天,各互联网公司通过各种方式都赚的盆满钵满,其中很重要的一项收入来源就是页面广告,横幅广告,弹窗广告以及视频广告等等,这些对大部分用户来说,已经造成一定烦恼。因此,广告过滤已成为浏览器的必备插件之一,最为人熟知的广告过滤插件就是AdBlockhttps://adblockplus.org/),AdBlock针对FireFoxChrome等都有相应的插件版本。但是在移动智能设备上,浏览器还不能很好地对AdBlock进行支持,其实这不是因为移动智能设备上浏览器的原因,而是市场和各浏览器厂商导致的,目前移动智能终端系统被AndroidIOS两家独占,IOS上的safari以及IOS对开发者来说都是闭源,开发者很难对safari进行开发,好在Android平台上的WebKit/Blink是完全开源的,很多开发者可以进行开发后发布自己的浏览器,就国内而言,QQUC,百度浏览器等就都是这样的,他们也都各自实现了广告过滤,下面将对广告过滤核心算法的实现以优化作一些介绍。

广告过滤最早的实现者是AdBlock,广告过滤的实现原理其实非常简单:

#1 针对各类广告的实现方法,比如大幅广告图片,弹窗广告,视频广告,它们在页面中都是存在资源下载链接的,在浏览器进行这些资源下载时,发现它们的URL存在一个黑名单中,那就告诉浏览器别去下载这些广告,从而达到广告过滤的目的;

#2 对于页面内镶嵌的文字广告,就不能通过以上方法过滤了,这时只要在页面显示时,通过设置文字广告的CSS属性,比如 display:none;就可以把这些广告隐藏起来,给用户的感觉就是这些广告也被过滤了。就如AdBlock官网所展示的那样,如图1所示。

 

图1 广告过滤

二 广告过滤算法实现

  通过上面介绍可以了解到,广告其本上可以分成两大类,一是有明确的资源下载链接的广告,AdBlock称之为blocking的;二是内嵌在页面内容中的文字类广告,AdBlock称之为Elem hide。针对这样的每一个广告,AdBlock都会有与之相对应的规则(filter),只要被filter所匹配的,都会被拦截或者被隐藏。比如

#1 这样一条blocking规则http://example.com/ads/banner*.gif就会拦截下面这个gif广告

http://example.com/ads/banner123.gif

#2 这样一条Elem hide规则

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值