zoukankan      html  css  js  c++  java
  • 油猴子脚本-过滤百度广告

    近期梯子不是很稳定,在家办公时网络也很差,bing 的搜索效果也差强人意,勉强用用百度吧,但是广告又特别恶心人。

    工具介绍

    本人使用的是 chrome 插件的 FeHelper 提供的网页油猴子工具

    var hiddenSelector = [
      // 百度搜索
      '#content_right',
      '#content_left [style="display:block !important;visibility:visible !important"]',
      
      // 百度贴吧
      '#j_p_postlist [ad-dom-img]',
    ];
    
    for (let i = 0; i < hiddenSelector.length; i++) {
      $(hiddenSelector[i]).css({
      	'display': 'none',
        'width': '0',
        'height': '0 '
      })
    }
    

    保存并启用!

    百度真的是鸡贼,给广告元素的标识藏的还真的深,努力的想让自己的广告标签弄的和正常的内容差不多。

    这选择器还让我写的挺恶心 '#content_left [style="display:block !important;visibility:visible !important"]',再见了您呐。

    完善过程

    保存生效此代码,但发现还是又些不足,百度在请求结束后又插入了一堆非常难以直接用 css 直接选择出来的小型广告,如下图:

    那么给代码设置一个定时器吧。

    var hiddenSelector = [
      // 百度搜索
      '#content_right',
      '#content_left [style="display:block !important;visibility:visible !important"]',
      
      // 百度贴吧
      '#j_p_postlist [ad-dom-img]',
    ];
    
    var hiddenSubSelector = [
      // 百度搜索
      {
      	'name': '#content_left .ec_tuiguang_pplink',
        'depth': 2
      }
    ];
    
    for (let i = 0; i < hiddenSelector.length; i++) {
      $(hiddenSelector[i]).css({
      	'display': 'none',
        'width': '0',
        'height': '0 '
      })
    }
    
    // 定时清除8次,每1秒一次。
    var times = 8;
    
    var timer = setInterval(function () {
      if (times === 0) {
      	timer = null;
      }
      for (let i = 0; i < hiddenSubSelector.length; i++) {
        let $dom = $(hiddenSubSelector[i].name)
        for (let j = 0; j < hiddenSubSelector[i].depth; j++) {
          $dom = $dom.parent();
        }
        $dom.css({
          'display': 'none',
          'width': '0',
          'height': '0 '
        })
      }
      times = times - 1;
    }, 1000)
    

    十分难选的东西,就只好先选它的广告标签,然后再返回来选它的父级了。

    最终效果就是去掉了搜索页的所有广告。

    心得

    我尝试过直接写 chrome 插件注入 css 和 js 去清除广告,效果虽然不错但是挺麻烦的。

    也试过其他人的油猴子脚本,但效果也是差强人意。。总之自己写个简单的东西满足自己的需要是个不错的选择。

  • 相关阅读:
    Java的Regex --正则表达式
    Java的包装类
    类的始祖Object
    abstract和interface关键字介绍
    内部类
    Accumulation Degree [换根dp,二次扫描]
    牛客练习赛61 [口胡]
    CF1334G Substring Search [bitset,乱搞]
    CF1175F The Number of Subpermutations [哈希,乱搞]
    CF793G Oleg and chess [线段树优化建边,扫描线,最大流]
  • 原文地址:https://www.cnblogs.com/everlose/p/12491675.html
Copyright © 2011-2022 走看看