1 前言

目前百度搜索列表首页里,广告5条正常内容是10条,而且广告都是前1到5条的位置,与正常内容的显示样式无异。对于我们这样有能力的开发者,其实可以简单的实现一个chrome插件,在百度搜索页面里执行一些我们自己的javascript,删除掉这些广告条目。

2 插件简介

Chrome插件逻辑主体为两部分组成,一是在目标文档(比如www.baidu.com页面)运行的js和css,叫content_scripts;一部分是在chrome外壳上加载与显示的内容(比如图标和设置界面)叫browser_action,这些都需要在一个manifest.json的文件里描述。

2.1 插件结构

manifest.json
scripts
--jquery-1.7.1.min.js
--include.js
images
--icon16.png
--icon32.png

其中,scripts下的js是content_scripts需要的,images下的图片是叫browser_action需要的。

3 百度搜索的广告特征

3.1 文档结构特征

<div id="content_left">
<div>
<div>广告1</div>
<div>广告2</div>
<div>广告3</div>
<div>广告4</div>
</div> <div>搜索记录1</div>
<div>搜索记录2</div> <div>
<div>广告5</div>
</div>
</div>
  • 广告可以分首尾两个地方显示,也可能只有在首部显示
  • 多个广告可能被一个div包住,此div与搜索记录平行,但有时候广告与搜索记录直接平行

3.2 样式特征

  • 广告条目的class名称是动态的,每次刷新都得到不一样的class名
  • 广告条目使用了内联样式,用于保证广告的显示属性不受样式表的影响

3.3 自保护特征

在文档加载完成的两秒之内,广告条目的dom受到保护,试图修改广告的内联样式或直接删除广告的dom,都会触发生成新的不一样广告,插入搜索记录前面。

4 广告过滤思路

由于百度搜索在反反广告上做了很多措施,基于css级别的隐藏广告思路是不太可行了,我们可以基于jQuery,监测document的元素插入事件,在里面搜索广告条件,进而删除。虽然百度有自保护特征,但终究插入新广告也是触发到测document的元素插入事件。

4.1 include.js代码

; (function () {
$(document).bind("DOMNodeInserted", function (e) {
$("#content_left div[data-click] span:contains('广告')")
.parents("#content_left div[data-click]")
.remove();
});
})();

$("#content_left div[data-click] span:contains('广告')")可以将广告标识选择出来,向上选择到#content_left div[data-click],就是广告条目,然后把它删除。删除之后,百度会自动插入新的广告,新广告也符合这个选择器,所以会二次运行我们的去广告代码逻辑。

4.2 插件和源代码

源代码已经放到github上,把里面有一个已打包好的BaiduAdBlock.crx,将其拖曳到chrome内核的浏览器上,勾选“允许访问敏感页面”就完成安装。

github链接

https://github.com/xljiulang/BaiduAdBlock

教你编写百度搜索广告过滤的chrome插件的更多相关文章

  1. Chrome 百度搜索热点过滤插件 - 开源软件

    学习时,为了搜集最全的中文资料,有时候不得不使用Baidu搜索引擎.在你还是个小菜鸡的时候你可能会花费大量时间在百度上! 但是,时间久了你会发现,你总会被网络上一些奇奇怪怪或者有趣的事情吸引过去而逐渐 ...

  2. 使用Tampermonkey(油猴) 插件,重新实现了,百度搜索热点过滤功能

    昨天晚上,花了点时间学习了Chrome插件的制作方法,并书写了<Chrome 百度搜索热点过滤插件 - 开源软件>这一文章,简单地介绍自己实现的百度搜索热点过滤神器的原理和使用方式,并进行 ...

  3. 写个屏蔽百度搜索广告的Chrome插件

    工作生活都用百度比较多,毕竟它是目前为止感觉最好的国内PC搜索引擎.我纵使已经差不多炼成了一眼过滤广告的眼力,但始终觉得碍眼,感觉还是写个插件把它屏蔽了吧.这个插件开发的门槛其实非常低,只是一开始做不 ...

  4. 【项目】百度搜索广告CTR预估

    -------倒叙查看本文. 6,用auc对测试的结果进行评估: auc代码如下: #!/usr/bin/env python import sys def auc(labels,predicted_ ...

  5. 用less编写百度搜索静态效果

    效果图 html页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  6. jquery 仿百度搜索下拉框的插件

    转载地址:http://www.open-open.com/lib/view/open1420624048437.html 今天写了个下拉插件分享出来 效果: , 可以搜素,也可以使用上下键选择匹配出 ...

  7. Chrome谷歌浏览器屏蔽百度搜索右侧广告推荐方法

    先上图百度广告,其实屏蔽广告很简单 主要分成以下三步: 下载Adblock Plus插件 安装Adblock Plus插件 开启屏蔽 一.下载Adblock Plus插件(官网离线版) 二.安装Adb ...

  8. 搜索引擎广告过滤Chrome插件

    搜索广告屏蔽Chrome插件:自动过滤:百度,360,搜狗,google,bing的搜索广告,让魏则西的悲剧不再重演.珍爱生命,远离搜索广告! 下载:FuckAd.zip 安装:方法自行百度. 关闭百 ...

  9. 百度搜索 “Java面试题” 前200页(面试必看)

    前言 本文中的题目来源于网上的一篇文章<百度搜索 "Java面试题" 前200页>,但该文章里面只有题目,没有答案.因此,我整理了一些答案发布于本文.本文整理答案的原则 ...

随机推荐

  1. 【bzoj2331】[SCOI2011]地板

    题目链接: TP 题解: 分类讨论好烦啊! 0表示没有插头,1.2表示有插头,1表示接下来可以转弯,2表示接下来不能转弯,只能停在一个地方. 然后分类讨论: 插头状态 到达状态 0 0 2 2 | 1 ...

  2. 【k短路&A*算法】BZOJ1975: [Sdoi2010]魔法猪学院

    Description 找出1~k短路的长度.   Solution k短路的求解要用到A*算法 A*算法的启发式函数f(n)=g(n)+h(n) g(n)是状态空间中搜索到n所花的实际代价 h(n) ...

  3. php与html实现交互的基本操作

    今天我们来实现php与html页面注册和登录的效果.中国有句古话叫: 第一步:我们来了解一些php的基本格式. <?php php代码 ?> 第二步:了解php与js的一些基本区别 我们在 ...

  4. sublime 基本的配置

    { "font_size": 14.6, // font size "ignored_packages": [ "Vintage" ], & ...

  5. js继承之组合继承(结合原型链继承 和 借用构造函数继承)

    在我的前两篇文章中,我们已经介绍了 js 中实现继承的两种模式:原型链继承和借用构造函数继承.这两种模式都存在各自的缺点,所以,我们考虑是否能将这二者结合到一起,从而发挥二者之长.即在继承过程中,既可 ...

  6. Universal-Image-Loader源码解解析---display过程 + 获取bitmap过程

    Universal-Image-Loader在github上的地址:https://github.com/nostra13/Android-Universal-Image-Loader 它的基本使用请 ...

  7. 最详细的div边距合并的问题和解决方法

    对于前端来说写页面是最基础的东西了,但是想不到还是有人不理解边距合并的问题,昨天有网友问我为什么设置的margin不是我设置的实际效果? 好吧,废话不多说,下面来说一下关于margin合并的问题. 解 ...

  8. phper的Go之旅(-)--书写前言

    前言:由于我使用的主力机是mac,所以整系列教程都以mac为主,后期可能会更新windows,有时间的话,截止写这篇博客的时间我是一个全职php开发工程师,之所以要写这篇 教程原因就是现在技术语言层出 ...

  9. 最近面试 Java 后端开发的感受!

    阅读本文大概需要 4.3 分钟. 首发:cnblogs.com/JavaArchitect/p/10011253.html 上周,密集面试了若干位Java后端候选人,工作经验在3到5年间.我的标准其实 ...

  10. 企业私有源代码上传github致入侵之大疆案判决了

    事件简单回顾: 1.2017年8月28日,大疆宣布“大疆威胁识别奖励计划”,最高3万美元: 2.然而在此之前,大疆农业事业部某员工将企业私有源代码上传到了github: 3.就职于大疆竞对公司Depa ...