1Blocker,可能是目前最好用的 Safari 内容拦截应用

自从苹果在 iOS 9 中开放了 Safari 内容拦截接口以后,内容拦截应用一度火爆一时。1Blocker 是最早的一批内容拦截应用之一,由两位国外独立开发者 Rinat KhanovSalavat Khanov 开发,有 iOS 和 Mac 版本。因为一些独有的功能和优秀的表现,获得了很高的评价,堪称是目前最好用的 Safari 内容拦截应用。

内容拦截 ≠ 广告拦截

关于内容拦截,很多人会有个先入为主的错误认识:内容拦截 = 广告拦截。这多半是因为此类拦截应用,在宣传的时候都会打着「广告拦截」的名号。

但真实情况并非如此——内容拦截是 Safari 区别于其他浏览器的一个内置特性。Safari 以外的浏览器,拦截广告的扩展多是基于 JavaScript 脚本的。浏览器在读取网页时要先载入这些脚本,会导致加载时间变长,消耗内存增多,造成电池损耗。

而 Safari 的「内容拦截」则是通过预先将规则写入浏览器,来防止这些内容加载,以达到节省流量和加载时间的作用。能拦截的内容也不仅仅是广告,还包括追踪器、脚本、Cookies 和其他会拖慢加载速度的内容。

启用内容拦截应用的方式很简单——Mac 版需要安装 Safari 扩展,而 iOS 版只要在「设置 > Safari > 内容拦截器」中开启允许拦截即可。

iPad & iPhone 界面

1Blocker 内置了 9 组拦截规则组,包括广告拦截、追踪脚本、反广告拦截、社交分享组件、评论组件等。启用后,这些拦截规则就将作用于 Safari(包括原生应用中内嵌的 Safari)。

高可玩性的自建规则

除了内置规则组外,1Blocker 还具备非常高可玩性的自建规则,这也是它配称作「好用」的主要原因之一。

选取拦截页面元素

1Blocker iOS 在之前的版本更新中,加入了选取拦截页面元素的可视化编辑器。这是 1Blocker for iOS 里我最喜欢的功能,它使得 iOS 上「拦截页面元素」这个功能的易用性提升了数倍。

举个例子来说,我们在浏览网页时,经常会看到该网站 App 的引流横幅,很影响阅读体验。这时候,就可以用 Safari 的 Share Sheets 呼出 1Blocker 的选择器,对要拦截的元素确认进行拦截。

选择元素拦截

虽然该功能还是 Beta 版,但是开发者已经做了不少可用性上的优化。比如由于页面元素的点选不可能很精准,所以提供了 NarrowExpand 两个选项供你调整选区。

自定义 URL 和 Cookies 拦截

除了隐藏元素,1Blocker 还可以添加自定义 URL 拦截,以及针对某些域名屏蔽 Cookies。声明这些规则时,需要用到「正则表达式」——一些用来描述字符规律的符号。

如果你不熟悉正则表达式也不要紧,首先 App 中有一些符号的基本使用说明。另外,由于 Safari 内容拦截本身就反对使用过于复杂的正则表达式,所以你大概只需要知道要用 \. 来表示 ..* 可以表示 URL 中的任意字符(或者没有字符),而 https?:// 可以表示 http://https://( 1Blocker 拦截规则中 / 不用转义) 即可。

下图是是对 1Blocker 完整拦截一个域名规则的一些解释,可以帮助理解和编写自己的规则。

正则表达式

白名单

虽然随着拦截插件的日渐盛行,越来越多的网站已经开始调整广告的呈现形式,或将移动业务重心转移至原生应用。但是,仍有很多独立站点依然依靠流量广告来作为收入来源。针对这些站点,1Blocker 提供了一键设置白名单,通过 Safari 的 Share Sheets 呼出 1Blocker 即可「拉白」当前域名。

设置白名单

真正强大的 Mac 版

不管 1Blocker for iOS 有多么令人兴奋的功能,真正能发挥其所有功能的还当属 Mac 版。前者最大的短板在于:不管在可用性上做的多好,都始终回避不了内容拦截的本质——你需要首先能「找到」要拦截的内容,才能制定拦截规则

更彻底的元素拦截

和 iOS 版一样,1Blocker for Mac 也有页面元素拦截的可视化编辑器,但是借助「网页检查器」这个利器,可以实现更为彻底的元素拦截。

在 Mac 的 Safari 上,通过右键菜单>检查元素,你可以打开「网页检查器」查看页面上任意元素的代码,以及站点加载的所有字体、脚本、样式表等资源文件。

网页检查器

在使用 1Blocker for iOS 屏蔽淘宝手机站广告横栏时,你会发现并不能有效的拦截。这是因为像 1Blocker 这种拦截器,在选择元素的时候,使用的是元素的idclass这类简单选择器。

这些选择器通常能做到唯一对应,但淘宝这个横栏由于是 JS 生成的,idclass 的值每次都不同。虽然你生成的规则能成功拦截这个 id=o12dfs 的元素,但是再次刷新后,它又变成了 id=idfd23。这就导致你之前制定的规则完全无效。

好在1Blocker 支持所有被 WebKit 所支持高级 CSS 选择器,也就是说可以运用一些高级语法来更精准的选择元素。比如通过分析源码发现淘宝的这个元素标签有一个行内样式,于是就可以通过标签[属性]这种形式来精准匹配这个元素:div[style="display: block; position: relative; z-index: 0;"]

找到要拦截的元素

想要了解更多关于CSS Leve 4 选择器 请参考 w3c 的 文档。另外,获取元素路径还有个便捷的办法——右击元素标签,选择「拷贝选择器路径」即可。

拷贝选择器路径

iCloud 同步和导入规则包

1Blocker 另一个令人难以割舍的原因在于,所有你修改和建立的拦截规则或白名单,都能通过 iCloud 实时同步。想象一下你在 Mac 上建立了一堆复杂的拦截规则,低头拿起 iPhone 就能访问经拦截后的网页的那种酸爽!

此外,在 Mac 上你所有的自建规则组,除了可以通过 iCloud 同步外,还能导出成后缀名为 .1blockpkg 的 JSON 格式文件。这样就可以将自己的规则组导出分享给别人,而接收方只要在 Mac 或 iOS 设备上打开文件就能导入你的规则包。

这里分享一个我从 AdBlock 著名的规则列表 EasyList China 中移植过来规则包,为了保证普遍适用性,只移植了通用拦截规则部分,欢迎从 GitHub 上 下载 或者 fork 走。

问题和不足

1Blocker 当然也还存在不少问题,首先它所面临最根本的挑战是:我们真的需要一个 iOS 设备上的网页内容拦截器吗?既然我们在使用这些设备时,有超过 90% 的时间都是花在原生应用上,为余下的百分之几时间提供一个复杂的体验优化方案,怎么看都不向是个明智的决定。

试问,有多少影响阅读体验的广告是不能通过「阅读模式」一键解决的呢?

其次,亟需解决的还有本地化的问题。这里的本地化并非指简单的用户界面翻译,而是拦截规则的本地化。虽然它对于美国多数网站的优化拦截是到位的,但到了国内,最终效果与 Adblock 或 uBlock 等老牌拦截应用还有不小的差距。

1Blocker 并没有一个活跃的社区,单靠用户反馈、开发者补足规则的形式,显然不足以应对全部状况。虽然 1Blocker 提供足够强大的自定义拦截工具,但完善拦截规则是一件需要投入大量学习成本和时间成本的事。

而普通用户对拦截应用好坏的评判,并非基于是否提供了各种自定义工具,而是看它能否一次安装就一劳永逸,默默地做好拦截工作。而对于 Power user 们来说,如果能精准地定位到影响网页加载的广告或脚本,把它们写进 Surge 这类全局代理软件的 Reject 列表里,难道不是一件适用面更广的事么?

尾巴

虽然我还挺为 1Blocker 的产品定位担忧的,但对于苹果「全家桶」用户们来说,它仍然不失为目前最为好用的 Safari 内容拦截器。尤其是当「好用」这个词不作为形容词,而作为动词时。

现在你可以在 App Store 免费下载 1Blocker for iOS,但免费版本仅可开启一组内置规则组。多组规则、元素屏蔽、白名单和 iCloud 同步等高级功能,需要 30 元内购解锁。Mac 版售价 68 元,购买后可使用全部功能。

原文地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容