Android上Chrome、Firefox和Opera广告过滤方法


  由于手机屏幕尺寸限制,通常网站手机版显示内容更加简洁,当然也就减少或者是去除了广告。但毕竟还有很多网站没有专门的手机版,或者是手机版的文字广告也占据不少空间。Opera和Google合作后,Opera mini也不再过滤Google搜索广告了。Chrome、Firefox和Opera手机版都有各自的广告过滤功能。

  通用方法

  • 未Root:Adblock Plus for Android;
  • Root:hosts和一切可以更改hosts的工具(比如AdAway)。

  Adblock Plus for Android来自大名鼎鼎的adblockplus.org。支持在非Root环境下对Wifi拦截广告(Root后支持3G环境过滤),目前只能订阅规则,不能自定义。最大的缺点是需要驻留后台,内存占用不小。
Root后可以编辑规则文件:

  /data/data/org.adblockplus.android/files/patterns.ini

  题外:Adblock Plus当初信誓旦旦的说不开发Chrome版,现在不仅有了Adblock plus for Chrome,还有Opera、K-Meleon。

  Hosts属于万能大法了,优点、缺点都和PC上一样。Hosts只能作用于网站域名,将需要拦截的域名IP地址限制为127.0.0.0或0.0.0.0,遗憾的是不能细化。

  Android默认hosts文件位置:

  /etc/hosts

  Chrome for Android(root)

  桌面版的Chrome支持用户全局css,Chrome for Android也继承了这一特性。全局css,局限明显。但隐藏部分内容,对于手机屏幕来讲也能节约不少空间。

  Custom.css位置:

  /data/data/com.android.chrome/app_chrome/Default/User StyleSheets/Custom.css

  PC版的Custom.css位置:

  \User Data\Default\User StyleSheets\Custom.css

  Firefox for Android

  和桌面版一样,ABP几乎快成为Firefox的标配了。Adblock Plus扩展手机版也不支持自定义。
Root后也可以编辑规则文件:

  /data/data/org.mozilla.firefox/files/mozilla/xxxxxxx.dafault/adblockplus/patterns.ini

  当然还有其他支持过滤的扩展,NoScript、Stylish也都支持手机版。

  Opera Mobile(欧朋HD)

  Opera Mobile可以看作是PC端的Opera,广告过滤也继承了urlfilter.ini和custom.css(全局),设置方法:

  • opera:config – network- url filter file,选择urlfilter.ini文件位置 – 保存;
  • opera:config – user prefs – local css file,选择custom.css文件位置 – 保存。

  网络上也有不少过滤规则订阅源,比如《Opera Mobile广告过滤列表订阅源》。

  PC端浏览器伪装手机上网

  正如开篇所说,很多网站有PC版,也有手机版,两个版本的代码是不同的。而且一些网站在不同的浏览器下CSS代码也不同,比如Google在Chrome和Opera Mobile中就有明显区别。因此不能直接套用PC版的过滤规则,还是根据自己浏览习惯自定义规则比较好。

  PC端编写过滤规则也简单,只是多了一个浏览器伪装手机上网的步骤。

  以Firefox为例,可以通过User Agent Switcher扩展,或者是建立“general.useragent.override”字符串等方法更改浏览器的UserAgent。详细方法参考《Firefox手动更改UserAgent,伪装成手机或其他浏览器》。

  常用浏览器的User Agent String可以查阅:http://www.useragentstring.com/pages/useragentstring.php

  Google官方也说明了Chrome for Android的User-Agent:https://developers.google.com/chrome/mobile/docs/user-agent

  编写广告过滤规则的方法这里不再赘述。Opera mini和UC等采用云端压缩的浏览器不在讨论之列。