Adblock Plus 过滤规则介绍

基本规则效果

  1. 将视频页中模板匹配的部分去掉,重新修改分类器。针对57个视频站点,选取了15000个网页,准确率93.3%,召回率82.0%。
  2. 调研广告内容识别。

例外规则

@@

匹配网址开头/结尾

swf|会阻挡swf结尾的

|http://example.com会阻挡以这些开头的

||example.com/banner.gif会阻挡所有http://example.com或者https://www.example.com

标记分隔符

^是分隔符,除字母、数字或者_-.%之外的任何字符。

http://example.com:8000/foo.bar?a=12&b=%D1%82%D0%B5%D1%81%D1%82可以通过^example^或者^%D1%82%D0%B5%D1%81%D1%82^或者^foo.bar^来过滤。

注释

!开始的是注释

特殊注释用来设置参数。

Adblock Plus的过滤列表分为两种:

  1. 加载时,拦截的url

    根据url拦截HTTP请求的,不返回数据。

    例子:

    1
    2
    3
    4
    ||baidu.com/adver?
    /js/jsstyle-$third-party
    /js/mob/cpc_bottom.js
    /qqliveweb/*.swf
  2. 加载后,隐藏的elements

    网页加载后,匹配elements(如div)的id或class,命中则改display属性。

    1
    2
    3
    4
    5
    ###body > #right-promotion
    ###bottomAD
    ##.listok > a > img[style^="width:980px;height:"]
    ##.loc-home-top-adv-new
    ##a[href*=".yyk2.com/"]

我们可以利用的部分:

  1. 拦截url部分

    这个部分我们可以匹配<img>src属性、<a>href属性等正则匹配,命中则标记为广告。

  2. 隐藏elements部分

    可以在遍历<div>标签时,匹配idclass属性。

需要解决的问题

  1. 匹配速度

  2. 精选过滤列表

    可以抽取一部分页面来匹配,统计过滤列表的命中数,筛选高频规则。

  3. 对复杂规则的解析

    ABP中包括了options,比如是否是script加载,是否是img,是否同源等。

    ABP中包括了一些否定的情况。