移除百家号搜索结果

删除百度搜索结果的百家号结果

  1. // ==UserScript==
  2. // @name 移除百家号搜索结果
  3. // @icon https://www.baidu.com/favicon.ico
  4. // @namespace http://tampermonkey.net/
  5. // @home-url https://greasyfork.org/zh-CN/scripts/375240
  6. // @description 删除百度搜索结果的百家号结果
  7. // @version 1.25
  8. // @include http://www.baidu.com/*
  9. // @include https://www.baidu.com/*
  10. // @require http://code.jquery.com/jquery-1.8.2.js
  11. // @author mzcc
  12. // @note 2022.10.14-1.25 新增删除部分推广广告
  13. // @note 2022.10.14-1.23 调整删除逻辑,解决未删除第一个元素的问题
  14. // @note 2022.10.11-1.22 调整授权问题
  15. // @note 2022.10.09-1.20 重做删除逻辑
  16. // @note 2019.02.20-1.11 监听页面结构变化,调整代码
  17. // @note 2019.02.20-1.10 监听页面结构变化,修改移除逻辑
  18. // @note 2019.01.28-1.02 移除超时限制
  19. // @note 2019.01.25-1.01 百度搜索页面由于界面变化,观察页面dom的方式已经失效,更换新的去除方式
  20. // @note 2018.12.30-0.15 根据反馈,删除操作做新的变更逻辑
  21. // @note 2018.12.19-0.14 根据百度界面变化,删除操作做新的变更逻辑
  22. // @grant GM.xmlHttpRequest
  23. // @connect *
  24. // @run-at document-end
  25. // ==/UserScript==
  26.  
  27. (function () {
  28. 'use strict';
  29.  
  30.  
  31. var titleEl = document.getElementsByTagName("title")[0];
  32. var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
  33. if(MutationObserver){
  34. var MutationObserverConfig={
  35. childList: true,
  36. subtree: true,
  37. characterData: true
  38. };
  39. var observer=new MutationObserver(function(mutations){
  40. dealContent();
  41. });
  42. observer.observe(titleEl,MutationObserverConfig);
  43. }else if(titleEl.addEventListener){
  44. titleEl.addEventListener("DOMSubtreeModified", function(evt) {
  45. dealContent();
  46. }, false);
  47. }
  48.  
  49.  
  50. dealContent();
  51.  
  52.  
  53. function dealContent() {
  54. let $container = $('#content_left');
  55. // 移除广告
  56. $('.ec-tuiguang').parents('.new-pmd').parent().parent().parent().remove();
  57.  
  58. // 移除百度视频广告
  59. $container.find('a[href*="haokan.baidu"]').parents('.c-container').remove();
  60.  
  61. let $tags = $container.find('a[href^="http://www.baidu.com/link?url="]');
  62. let $top = $('.c-offset');
  63. let href = Array.from($tags).map(v => $(v).attr('href'));
  64.  
  65. // 去重
  66. href = Array.from(new Set(href));
  67.  
  68. // 移除
  69. href.forEach(function(url, index){
  70. GM.xmlHttpRequest({
  71. method: "GET",
  72. url: url,
  73. maxRedirects: 0,
  74. onload: function (response) {
  75. if (response.finalUrl.indexOf('baijia') > -1) {
  76.  
  77. let $ele = $container.find('a[href="'+url+'"]').eq(0);
  78. let flag = '.c-row';
  79. let $parent = $ele.parents('.c-row');
  80. if(!$parent.length){
  81. $parent = $ele.parents('.c-container');
  82. flag = '.c-container';
  83. }
  84.  
  85. $parent.remove();
  86. let $newBox = $parent.parents('.new-pmd');
  87. if(!$newBox.find(flag).length){
  88. $newBox.remove();
  89. };
  90. } else {
  91. // 还原真实地址
  92. $container.find('a[href="'+url+'"]').attr('href', response.finalUrl);
  93. }
  94. }
  95. });
  96. });
  97.  
  98. }
  99.  
  100. })();