返回首頁 

Greasy Fork is available in English.

remove_baijiahao

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

/* jshint esversion: 6 */// ==UserScript==// @name         remove_baijiahao// @icon         https://bjhstatic.cdn.bcebos.com/favicon.ico// @namespace    http://tampermonkey.net/// @description  删除百度搜索中的百家号结果// @version      1.15// @match        *://www.baidu.com/*// @author       Greyh4t// @grant        GM.xmlHttpRequest// @run-at       document-end// @connect      www.baidu.com// @license      GNU GPLv3// ==/UserScript==(function () {'use strict';let blockList = ["baijiahao.baidu.com"];deal_content();bind_change();function bind_change() {let titleEl = document.getElementsByTagName("title")[0];let MutationObserver = window.MutationObserver || window.WebKitMutationObserver;if (MutationObserver) {let MutationObserverConfig = {childList: true,subtree: true,characterData: true};let observer = new MutationObserver(function (mutations) {deal_content();});observer.observe(titleEl, MutationObserverConfig);} else if (titleEl.addEventListener) {titleEl.addEventListener("DOMSubtreeModified", function (evt) {deal_content();}, false);}}function deal_content() {let content = $('#content_left');let containers = content.find('.c-container.new-pmd');for (let i = 0; i < containers.length; i++) {let container = containers[i];let tpl = container.getAttribute('tpl');let top;let divs;switch (tpl) {case "se_com_default":case "realtime_weak":case "rel-timeline":case "wenda_abstract_pc":case "news-normal":case "rel-head":case "news-realtime-weak":case "rel-common-head":top = $(container);divs = [container];break;case "timeliness_news2":top = $(container);divs = top.children('div');break;case "news-realtime":top = $(container).children('div').children('div').children('div');divs = top.children('div');break;case "sp_realtime_bigpic5":top = $(container).children('div');divs = top.children('div');break;case "short_video_pc":top = $(container).children('div.op-short-video-pc').children('div');divs = top.children('div');break;case "short_video":top = $(container).children('div').children('div').children('div').children('div.c-row');divs = top.children('div');break;case "bjh_addressing":container.remove();continue;default:continue;}handle_divs(container, top, divs);}}// container 为要移除的最外层容器// top 用来判断top是否还有子元素,如果没有,则移除container// divs 本次要检查的div列表,应当是top的直接子元素或是container本身function handle_divs(container, top, divs) {for (let i = 0; i < divs.length; i++) {let div = divs[i];handle_div(container, top, div);}}function handle_div(container, top, div) {let as = $(div).find('a');for (let i = 0; i < as.length; i++) {let a = as[i];if (is_block(a.hostname)) {check_remove(container, top, div);return;}if (a.href.indexOf("www.baidu.com/link?url=") > -1) {handle_fake_url(container, top, div, a);}}}function is_block(hostname) {for (let i = 0; i < blockList.length; i++) {if (hostname.endsWith(blockList[i])) {return true;}}return false;}function handle_fake_url(container, top, div, a) {let tmpURL = a.href.indexOf("eqid") < 0 ? a.href + "&wd=&eqid=" : a.href;GM.xmlHttpRequest({method: "GET",url: tmpURL,headers: {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36","Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","Host": "www.baidu.com","Accept-Encoding": "gzip, deflate, br","Connection": "keep-alive"},onload: function (response) {let reg = /URL=['|"]([^'|"]+)/;if (reg.test(response.responseText)) {let realURL = response.responseText.match(reg)[1];let o = new URL(realURL);if (is_block(o.hostname)) {check_remove(container, top, div);} else {// 还原真实地址$(container).find('a[href="' + a.href + '"]').attr('href', realURL);}}}});}function check_remove(container, top, div) {div.remove();if (top.children('div').length == 0) {container.remove();}}})()