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 去清除广告,效果虽然不错但是挺麻烦的。

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

  • 相关阅读:
    手动在本机仓库中放置jar包以解决Maven中央仓库不存在该资源的问题
    同一套代码部署到两台机器上,只有一台机器上的页面中文乱码
    Nginx与httpd共存
    [Z3001] connection to database 'zabbix' failed: [2003] Can't connect to MySQL server on 'x.x.x.x' (13)
    Excel中时间戳转换公式及原理
    springcloud服务注册和发现
    spingboot和springcloud简记
    postgres use
    访问者模式
    uml类图详解
  • 原文地址:https://www.cnblogs.com/everlose/p/12491675.html
Copyright © 2011-2022 走看看