AI智能摘要
GPT
本文探讨了如何利用Adguard的自定义规则屏蔽梦璃网站的广告。作者指出,梦璃网站的广告元素无法通过常规的DOM定位方法有效屏蔽,且Adguard插件生成的CSS选择器拦截规则效果较差。因此,提出了使用广告中的rel=nofollow属性进行拦截的方案,利用此属性可以精确识别并屏蔽不希望搜索引擎收录的广告链接。
这篇文章主要讨论了如何使用Adguard的自定义规则来屏蔽梦璃网站的广告。由于广告的dom元素无法准确定位,且Adguard插件生成的基于css选择器的拦截规则并不好用,提出了一个新的方法:利用广告中的a标签中都有一个固定的属性rel值为nofollow来进行广告屏蔽。
自用全专线,小贵但效果超好 Aifun 爱翻 - 机场测评
1. 梦璃网站广告现状
梦璃网站存在着很多的广告,如网站页眉页脚、文章的开头和结尾部分和评论区部分都存在较大的广告,因各种原因我决定将其屏蔽
不要纠结于为什么屏蔽,你纠结这个的话,那你为什么会看到这篇文章呢


2. 问题分析
通过F12打开开发者工具后,选择元素可以发现,其广告的dom元素无法准确的定位,是采取了随机class的方式


但分析其class样式可知,其实又为伪随机,但不确定其是否会变化,所以常规的class定位元素屏蔽方式并不合适

与其同时,也还有Adguard插件生成的基于css选择器的拦截规则,但就实际尝试而言这并不好用,因为其结果是与DOM树结构高度绑定的,且因为不同页面的DOM结构不一样,而其广告结构类似,很容易导致在其他页面误杀,Adguard插件生成的结果其实并没有针对广告拦截做太多的优化,其用了两个不普遍性的筛选规则,一个是文章的ID,还一个是前面提到的随机生成的class

要避免这种情况,要不就针对URL路径本身在进行二次限制或通过其他方式,但那样终究复杂度会过高
3. 解决方案
所以只能通过其他方式进行拦截,不过可以注意到,其广告中的a标签中都有一个固定的属性rel值为nofollow

nofollow 链接属性由 Google 于 2005 年引入,用于处理用来欺骗系统的垃圾链接。一般来说,nofollow 链接属性应用于非自然链接以及网站所有者不想与链接的目标 URL 关联时。 简单来说就是因为这个链接是通往广告的,它并不希望这个link被搜索引擎收录,所以他的广告属性中都有此属性
所以我们可以针对其广告写如下的规则
moeli-desu.com##div > a[rel="nofollow"]
规则解释
在
moeli-desu.com
域名下的 <div>
元素内,选择具有 rel
属性值为 nofollow
的 <a>
元素,并进行屏蔽(隐藏)操作。这个规则将会选择
moeli-desu.com
域名下的所有 <div>
元素中具有 rel="nofollow"
属性的 <a>
元素,并尝试将其屏蔽掉,从而达到过滤的目的。参考
- 广告屏蔽采用网页修改的方式并不是上策,最通用最佳的方式还是进行url拦截,不过根据我对于其的分析其广告url与正常图片url并无法区分,最多只能定向拦截具体图片,但这样反而更不是一个可以长久的方案
自用全专线,小贵但效果超好 Aifun 爱翻 - 机场测评
📎 参考文章
主要参考
还可以加入Telegram的七行的小仓库|互联网记忆|博客 和七行 技术交流群 找到更多小技巧哦🥰,还可以在聊天群探讨各种问题❓
欢迎在底部评论区分享您的想法和经验,让我们一起共同探讨,共同进步!
- 作者:Qi Xing
- 链接:https://blog.qixing1217.top/article/adguard-custom-ad-blocking-rules-rel-nofollow-example-mengli
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。