您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
2022/8/17 10:00:00
// ==UserScript== // @name ZhihuAnaswerChecker-JavaScript // @namespace Violentmonkey Scripts // @match https://www.zhihu.com/people/* // @require https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js // @grant window.open // @grant window.focus // @version 1.4 // @author 老实人不接盘@知乎(主体编写),尼尼尼@知乎(初版编写) // @description 2022/8/17 10:00:00 // @license GPL3 // ==/UserScript== // 知乎用户用于检查 “回答” 被屏蔽情况的Javascript脚本。 // 仅限检查“回答”项目,且单次执行只检查当前的单个页面。 // 简要操作说明: // 1.在浏览器扩展商店中搜索“暴力猴“、”油猴“之类扩展插件,安装并启用。下面以”暴力猴“为例。 // 2.在暴力猴插件中点击”+“号,新建JS脚本,将此脚本内容全部复制粘贴进去并保存。 // 3.进入知乎主页,登录(不可用)知乎账户。在暴力猴插件控制台中启用上面保存的脚本。刷新页面,会看到页面顶部多出一个绿色”点击执行检查“按钮。 // 4.进入个人主页, 点击”回答“栏。页面加载完成后,点击“点击执行检查”按钮,即可输出当前页回答被屏蔽的情况。 // 5.也可以翻页进入以前的回答页面,检查以往任何一页的被屏蔽情况。但单次执行只能检查当前这一页。 // 建议用途:随手检查最新一页回答中的被屏蔽情况。注意不要过于频繁执行,以免被知乎拒绝请求。 (function() { 'use strict'; //全局变量设置 var baseUrl = "https://www.zhihu.com/people"; var currentUrl = window.location.href; var currentAllLinkList=[]; var currentBlockedLinkList=[]; var resultPage='';//检测结果页面文本。 function c(v){ console.log(v); } //获取当前页面上回答、文章或想法链接链接(class="List-item") function getAllLinksOnCurrentPage(){ var linkList = []; var currentPageLinks = document.querySelectorAll("a[data-za-detail-view-element_name=Title]"); if( currentPageLinks.length != 0){ //存入数组并计数 currentPageLinks.forEach(function (listItem) { //取出关键信息并存入数组 let link = listItem.href; let title = listItem.innerHTML; let infoItem = {title, link}; linkList.push(infoItem); }); } let tmp = getAllLinkList(); setAllLinkList(tmp.concat(linkList)); return linkList; } //对链接进行可访问性检查(非登录(不可用)状态、不区分“仅自己可见”和“仅自己和关注者可见”)。 function checkAllLinkList(list){ if(list.length != 0){ c(list); var fetchCount = 0; list.forEach(function (listItem) { c('fetching...'); let link = listItem.link; let title = listItem.title; fetch(link,{credentials:"omit"}) .then((response) => { return response.text(); }).then((data) => { ++fetchCount; //以网站响应页面中“没有知识存在的荒原”为标志,进行检查。 if (data.includes('没有知识存在的荒原')) { currentBlockedLinkList.push(listItem); c('当前被屏蔽结果:'+currentBlockedLinkList); } if(fetchCount === list.length){ c(currentBlockedLinkList); let tmp = getBlockedLinkList(); setBlockedLinkList(tmp.concat(currentBlockedLinkList)); showResult(); //清除缓存 removeLocalStorage(); setAllLinkList([]); setBlockedLinkList([]); setCurrentPageNum(1); setPageCount(1); currentAllLinkList=[]; currentBlockedLinkList=[]; } }); }); } } //展示结果 function showResult(){ var allLinkList = []; var blockedLinkList = []; allLinkList = getAllLinkList(); blockedLinkList = getBlockedLinkList(); resultPage = '<!DOCTYPE html><html><body><div>检测完毕。<br>如有创作内容被屏蔽,请与知乎小管家交流,共同学习,共同进步。</div><p><div><b>当前页面总回答数量:' + allLinkList.length + ', 被屏蔽数量:' + blockedLinkList.length + '</b></div><p><div><table>'; if(blockedLinkList.length !== 0) { blockedLinkList.forEach(function (listItem) { let cell = '<tr><td>' + listItem.title + '</td><td>' + '<a href="'+listItem.link+'" target=_blank>' + listItem.link + '</a></td></tr>'; resultPage += cell; }); } resultPage +='</table></div></body></html>'; //新建浏览器标签,并展示检查结果。 const newTab = window.open('','_blank'); newTab.document.write(resultPage); newTab.focus(); } function init() { checkAllLinkList(getAllLinksOnCurrentPage()); } function main() { c("执行main"); addCheckButton(); } //在页面上添加执行按钮 function addCheckButton() { $('body').append('<div id="CheckLink">点击执行检查</div>') $('#CheckLink').css('width', '200px') $('#CheckLink').css('position', 'absolute') $('#CheckLink').css('top', '70px') $('#CheckLink').css('left', '350px') $('#CheckLink').css('background-color', '#28a745') $('#CheckLink').css('color', 'white') $('#CheckLink').css('font-size', 'large') $('#CheckLink').css('z-index', 100) $('#CheckLink').css('border-radius', '25px') $('#CheckLink').css('text-align', 'center') $('#CheckLink').click(function () { checkAllLinkList(getAllLinksOnCurrentPage()); }); //$('#CheckLink').draggable(); } function handleLocalStorage(method, key, value) { switch (method) { case 'get' : { let temp = window.localStorage.getItem(key); if (temp) { return temp } else { return false } } case 'set' : { window.localStorage.setItem(key, value); break } case 'remove': { window.localStorage.removeItem(key); break } default : { return false } } } function removeLocalStorage(){ handleLocalStorage('remove','currentPageNum'); handleLocalStorage('remove','pageCount'); handleLocalStorage('remove','allLinkList'); handleLocalStorage('remove','blockedLinkList'); } function setCurrentPageNum(v){ handleLocalStorage('set','currentPageNum',v); } function setPageCount(v){ handleLocalStorage('set','pageCount',v); } function getPageCount(){ return handleLocalStorage('get','pageCount',0); } function setAllLinkList(v){ handleLocalStorage('set','allLinkList',JSON.stringify(v)); } function getAllLinkList(){ return JSON.parse(handleLocalStorage('get','allLinkList',0)); } function setBlockedLinkList(v){ handleLocalStorage('set','blockedLinkList',JSON.stringify(v)); } function getBlockedLinkList(){ return JSON.parse(handleLocalStorage('get','blockedLinkList',0)); } document.onreadystatechange = function(){ if(document.readyState === "complete"){ removeLocalStorage(); setAllLinkList([]); setBlockedLinkList([]); setCurrentPageNum(1); setPageCount(1); main(); } } } )();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址