油猴子脚本-过滤百度广告

近期梯子不是很稳定,在家办公时网络也很差,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 去清除广告,效果虽然不错但是挺麻烦的。

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

posted @ 2020-03-14 13:14  Ever-Lose  阅读(1555)  评论(0编辑  收藏  举报