返回首頁 

##微博热搜榜关键词屏蔽

屏蔽微博热搜榜中tag为:剧集、综艺等明显买量条目,热搜广告,热搜关键词,可自定义标签及关键词


Install this script?
// ==UserScript==// @name         ##微博热搜榜关键词屏蔽// @namespace    http://tampermonkey.net/// @version      0.0.4// @description  屏蔽微博热搜榜中tag为:剧集、综艺等明显买量条目,热搜广告,热搜关键词,可自定义标签及关键词// @author       QIXIUQX// @match        https://weibo.com/*// @match        https://s.weibo.com/*// @icon         https://www.sina.com.cn/favicon.ico// @grant        none// @license      GPL-3.0 License// @require      https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.2.1/jquery.min.js// ==/UserScript==//// 分类关键词列表let adCategoryList = ["影视", "艺人", "音乐", "综艺"];// 标签关键词列表let adLabelList = ["综艺", "艺人","盛典"];// 热搜title关键词列表let adTitleList = ["肖战","王一博"];// 热门样式类名let classList = ["ad-rank1", "ad-rank2", "ad-rank3"];// 热搜详情页面地址let hotDetailPageUrl = "https://s.weibo.com/weibo?q=";window.onload = () => {initialPage();};/*** 初始化页面数据*/function initialPage() {addHeadLink();getHotSearch();changeRankMorePath();}/*** 改变页面中查看完整热搜榜单的跳转地址*/function changeRankMorePath() {if (getCurrentPageUrl().indexOf(hotDetailPageUrl) !== -1) {$(".rank-more").attr({href: "https://weibo.com/hot/search",target: "_self",});}}/*** 分类是否存在于要被过滤的关键词列表中* @param {Array} adList 过滤列表* @param {string} category 分类* @returns {boolean} 需要被过滤返回true,不需要过滤返回false*/function isExistKeywords(adList, category) {let categoryList = category.split(",");let r###lt = categoryList.filter((item) => {return adList.includes(item);});return r###lt.length !== 0;}/*** 标题是否存在于要被过滤的关键词列表中* @param {Array} adTitleList 过滤列表* @param {string} title 分类* @returns {boolean} 需要被过滤返回true,不需要过滤返回false*/function isExistKeywordsFromTitle(adTitleList, title) {let exist = false;for (let index = 0; index < adTitleList.length; index++) {if (title.indexOf(adTitleList[index]) !== -1) {exist = true;}}return exist;}/*** 获取热搜列表*/function getHotSearch() {$.ajax({url: "https://weibo.com/ajax/side/hotSearch",data: {},type: "GET",cache: false,async: true,dataType: "json",success: function (data) {data = data.data.realtime;generateSideStr(data);generatePrimaryStr(data);// 热搜列表},error: function (jqXHR, textStatus, errorThrown) {},});}/*** 生成热搜的主要页面数据* @param data {Array} 热搜数据*/function generatePrimaryStr(data) {let hotIdx = 0;let primaryHotSearchStr = "";data.forEach((hotItem) => {if (hotItem.ad_type === undefined &&!isExistKeywords(adCategoryList, hotItem.category || "") &&!isExistKeywords(adLabelList, hotItem.flag_desc || "") &&!isExistKeywordsFromTitle(adTitleList, hotItem.note)) {hotIdx++;primaryHotSearchStr += `<div class="ad-hot-search-wrap"><div class="ad-hot-search-item"><div class="ad-item-content"><span class="ad-hot-topic-idx ${getClassName(hotIdx)}">${hotIdx}</span><a href="https://s.weibo.com/weibo?q=%23${hotItem.word}%23" class="ad-hot-topic-tit" target="_blank">${hotItem.note}</a><span class="ad-hot-topic-num"><span>搜索量</span><span>${hotItem.num}</span></span></div><div class="ad-item-type-label">${generateHotSearchICONDescStr(hotItem)}${generateHotSearchCategoryStr(hotItem)}${generateHotSearchFlagStr(hotItem)}</div></div></div>`;} else {console.log("被屏蔽:", hotItem);}});$("#scroller").html(primaryHotSearchStr);}/*** 生成热搜的侧边栏数据* @param {Array} data 热搜数组*/function generateSideStr(data) {let hotIdx = 0;let asideHotSearch = `<div class="ad-hot-search-wrap"><div class="ad-hot-search-item" style="padding: 6px 10px;"><div class="ad-item-content"><a href="https://weibo.com/hot/search" class="ad-hot-topic-tit" target="_blank" style="margin-right:0;font-size:18px;font-weight: 700;">查看完整热搜</a></div></div></div>`;data.forEach((hotItem) => {if (hotItem.ad_type === undefined &&!isExistKeywords(adCategoryList, hotItem.category || "") &&!isExistKeywords(adLabelList, hotItem.flag_desc || "") &&!isExistKeywordsFromTitle(adTitleList, hotItem.note)) {if (hotIdx < 10) {hotIdx++;asideHotSearch += `<div class="ad-hot-search-wrap"><div class="ad-hot-search-item" style="padding: 6px 10px;"><div class="ad-item-content"><span class="ad-hot-topic-idx ${getClassName(hotIdx)}">${hotIdx}</span><a href="https://s.weibo.com/weibo?q=%23${hotItem.word}%23" class="ad-hot-topic-tit" target="_blank" style="margin-right:0;font-size:14px;font-weight: 400;">${hotItem.note}</a></div></div></div>`;}}});//侧边栏插入热搜$(".wbpro-side-main").html(asideHotSearch);// 热搜页侧边栏$(".wbpro-side-main>div:first-child div[class*='wbpro-side-card']").html(asideHotSearch);}/*** 获取当前页面的url地址* @returns {string} 当前页面的url地址*/function getCurrentPageUrl() {return location.href;}/*** 生成ICON描述* @param {object} hotItem 热搜数组的item* @returns {string} 类型拼接字符串*/function generateHotSearchICONDescStr(hotItem) {if (!hotItem.icon_desc) return "";return `<span class="ad-hot-topic-type user-select-off" style="background:${hotItem.icon_desc_color}">${hotItem.icon_desc}</span>`;}/*** 生成类型描述* @param {object} hotItem 热搜数组的item* @returns {string} 类型拼接字符串*/function generateHotSearchCategoryStr(hotItem) {if (!hotItem.category) return "";return `<span class="ad-hot-topic-type user-select-off" style="background:${hotItem.icon_desc_color}">类型:${hotItem.category}</span>`;}/*** 生成标签* @param {object} hotItem 热搜数组的item* @returns {string} 标签拼接字符串*/function generateHotSearchFlagStr(hotItem) {if (!hotItem.flag_desc) return "";return `<span class="ad-hot-topic-type user-select-off" style="background:${hotItem.icon_desc_color}">标签:${hotItem.flag_desc}</span>`;}/*** 获取热搜前三的序号背景颜色class* @param {number} hotIdx 热搜编号(编号从1开始)* @returns {string} 背景颜色class*/function getClassName(hotIdx) {hotIdx--;return hotIdx > 3 ? "" : classList[hotIdx];}/*******添加样式到页面中 *******//***添加head中的style标签*/function addHeadLink() {let head = document.querySelector("head");let styleEl = addElStyle();head.appendChild(styleEl);}/**** 添加css样式方法,脚本的所有css 都将在这里定义* @returns {HTMLStyleElement} css样式字符串*/function addElStyle() {let style = document.createElement("style");style.innerHTML = `* {margin: 0;padding: 0;box-sizing: border-box;border: 0;}body {font-size: 16px;font-family: "Microsoft Yahei", "PingFang SC", "Helvetica Neue", Helvetica,STHeiTi, sans-serif;width: 100vw;height: 100vh;background-color: #f1f2f5;}a {text-decoration: none;}ul,ol,li {list-style: none;}img {vertical-align: middle;}table {border-collapse: collapse;border-spacing: 0;}.ad-hot-search-wrap .ad-hot-search-item {position: relative;display: flex;flex-direction: column;justify-content: center;padding: 14px 16px;margin-bottom: 8px;background-color: #fff;border-radius: 4px;}.ad-hot-search-wrap .ad-hot-search-item .ad-item-content {display: flex;align-items: center;}.ad-hot-search-wrap .ad-hot-search-item .ad-item-content .ad-hot-topic-idx,.ad-hot-search-wrap .ad-hot-search-item .ad-item-content .ad-hot-topic-tit,.ad-hot-search-wrap .ad-hot-search-item .ad-item-content .ad-hot-topic-num {margin: 0 0 0 10px;}.ad-hot-search-wrap .ad-hot-search-item .ad-item-content .ad-hot-topic-idx {padding: 2px 8px;font-size: 14px;background-color: #afb5c5;color: #fff;border-radius: 6px;}.ad-hot-search-wrap .ad-hot-search-item .ad-item-content .ad-rank1 {background-color: #f55050;}.ad-hot-search-wrap .ad-hot-search-item .ad-item-content .ad-rank2 {background-color: #fe7a1d;}.ad-hot-search-wrap .ad-hot-search-item .ad-item-content .ad-rank3 {background-color: #fcce4e;}.ad-hot-search-wrap .ad-hot-search-item .ad-item-content .ad-hot-topic-tit {margin-right: 100px;color: #333;font-size: 18px;font-weight: 700;transition: all ease 0.2s;}.ad-hot-search-wrap.ad-hot-search-item.ad-item-content.ad-hot-topic-tit:hover {color: #eb7350;}.ad-hot-search-wrap .ad-hot-search-item .ad-item-content .ad-hot-topic-num {display: flex;flex-direction: column;align-items: center;position: absolute;right: 20px;top: 50%;transform: translateY(-50%);color: #939393;}.ad-hot-search-wrap .ad-hot-search-item .ad-item-type-label {margin: 10px 0 0 10px;}.ad-hot-search-wrap .ad-hot-search-item .ad-item-type-label .ad-hot-topic-type {padding: 0 3px;font-size: 14px;color: #fff;background-color: #ff3852;border-radius: 4px;}.user-select-off {user-select: none;-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none;}`;return style;}