知乎推荐流优化

优化知乎首页推荐流的内容,如移除灌水用户、按屏蔽词屏蔽等

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

作者
lisolaris
今日安裝
0
安裝總數
185
評價
1 0 0
版本
0.3.9
建立日期
2024-06-17
更新日期
2025-09-13
尺寸
26.7 KB
授權條款
GPLv3
腳本執行於

知乎推荐流优化

此项目的目的在于优化知乎首页推荐流的浏览体验。

目前的功能有:

  • 删除推荐流中使用默认头像的用户生产的回答(连头像都不换就来灌水了!),通过监视推荐流列表元素的更新并在新加入的卡片数量达到5个(默认值,可更改)时查询API检查用户头像;由于知乎默认头像具有一个特定的名称(v2_abed1a8c04700ba7d72b45195223e0ff.jpg),所以只需要检查头像图像的链接而不用下载图片就可以实现检查。
    为了避免误伤使用默认头像但生产了较多内容的用户,可以对用户回答数量阈值和是否使用用户名辅助判断进行设置。其真值表如下:
屏蔽词匹配标题 是默认头像 回答数小于设定阈值 启用用户名辅助判断 用户名以“知乎用户”开头 是否移除
1 - - - - 1
0 1 1 1 1 1
0 1 1 1 0 1
0 1 0 1 0 0
0 1 0 1 1 1
0 1 0 0 - 0
0 0 - - - 0

由于知乎加强了反爬虫功能,屏蔽默认头像用户变得十分困难。因此现阶段不建议启用默认头像用户屏蔽功能,可能会由于接口请求失败频繁弹窗提示。

  • 自动移除标题中含有用户自定义的屏蔽词的问题卡片,支持正则表达式。输入正则时请将表达式用正斜杠/包围,例如/(男|女)朋?友/;可以通过点击浏览器用户脚本管理器扩展,并在弹出的菜单-知乎推荐流优化下的子菜单中设置管理屏蔽词项目。

  • 自动点击标题中含有用户自定义的屏蔽词的问题卡片的“不感兴趣”这一项,有助于让知乎推荐算法了解你的习惯。但作者本人实测不管点多少次不感兴趣,知乎还是会推

  • 可选自动隐藏最近知乎首页顶部新加的想法编辑栏。

已移除的卡片详情会输出在控制台,例如:

知乎推荐流优化 待删除列表中加入: f36e118d800ad24cd156355993119b0c, 原因: 默认头像

知乎推荐流优化 待删除列表中加入: 26a6c20cecfaca53f27a129bcc2986fd, 原因: 用户屏蔽词 姜萍

知乎推荐流优化 已移除卡片: {"authorName":"没有知识的荒原","itemId":3536804512,"title":"现在大家对姜萍事件都是什么看法?","type":"answer"}, 原链接: ["https://www.zhihu.com/question/659369271","https://www.zhihu.com/question/659369271/answer/3536804512"], 预览: 没有知识的荒原: 知乎的封神之战,事实证明知乎上懂数学的人的比例在各大软件中算高的。, 已不感兴趣: 是

可以按F12打开开发者控制台查看输出的日志。

这是我第一次学习JavaScript写出的脚本,所以迭代会很快;未来预计还会添加更多功能,等待更新……

脚本在Firefox 142.0.1, ViolentMonkey 2.31.0上测试可用。

更新历史

v0.3.9 修复知乎首页更新导致自动点击“不喜欢该内容”失效的问题

v0.3.8 优化菜单展示;加入新功能:可选是否自动隐藏首页顶部想法编辑栏

v0.3.7 修复bug:未启用屏蔽默认头像用户回答时,从推荐流移除卡片的功能不会生效;

v0.3.6 添加按正则表达式屏蔽的功能,在添加屏蔽词时将表达式用正斜杠/包围起来即可;添加可选关闭屏蔽默认头像用户回答的功能,在脚本管理器菜单中点击关闭即可;优化请求后端接口时出错的信息提示,现在会显示后端返回的错误详情并且点击确定后只会弹出一次了。注意到知乎更新了API滥用策略,以往的直接进行数个请求查询用户信息的方式会被屏蔽,有空再来研究

v0.3.5 修复了在查询知乎API时未附加当前用户的cookie,导致请求被拦截(403)的问题

v0.3.4 加入新功能:使用额外的默认头像库来进行匹配(除了最常见的宇航员刘看山外知乎还有大量其他的刘看山头像可选,比如这个,现在可选是否屏蔽使用这些头像的用户回答了;加入500ms超大延迟,确保卡片加载完成后才会进行检查

v0.3.3 重新编写一部分代码实现检查用户信息部分的解耦;尝试屏蔽评论区中的默认头像用户发言但效果不是很好,暂不启用;在首次页面加载后延迟2000ms即开始检查页面而不是等待DOMContentLoaded事件发生,以实现0.3.2中并未修复的“确保最顶上的几个卡片会被检查”

v0.3.2 为页面重加载(点击首页顶部推荐按钮)后调用的pageReloadCheck()增加1000ms的延迟,第一个卡片加载出来后才开始检查以确保最顶上的几个卡片会被检查;代码仓库中新增屏蔽词列表bannedwords.txt,仅供参考(

v0.3.1 修复 忘记给切换是否自动不感兴趣的菜单写回调了!直接复制了上面那个菜单的代码导致点一下切换不感兴趣,用户名辅助判定的菜单反而会变==;为每次检查加入延迟,尝试修复cardItem为空的问题

v0.3.0 加入新功能:可选是否对推送到首页标题中含屏蔽词的问题自动点击“不感兴趣”;去除菜单中“查看屏蔽词列表”一项,如有需要可以打开控制台查看;去除菜单中“清空屏蔽词列表”一项,可以在“删除屏蔽词”菜单中输入“清空全部屏蔽词!”来清空(是中文感叹号);优化脚本加载完成后在控制台输出的屏蔽词列表日志信息,可以直接复制并通过“添加屏蔽词”菜单导入;修正脚本答案数量阈值标称默认为100,实际上为200的问题;补充0.2.6更新日志中增加“清空屏蔽词列表的确认提示” 忘记了

v0.2.6 为首页推荐按钮增加事件监听器,现在通过推荐按钮刷新页面时也会执行检查了;去除菜单中“查看屏蔽词列表”一项,如有需要可以打开控制台查看;增加“清空屏蔽词列表的确认提示;优化代码结构

v0.2.5 加入更多判断条件:用户答案数量(默认阈值为100)与用户名是否为默认(以"知乎用户"开头),用于避免误伤使用默认头像但有较多回答的正常用户,并可在脚本管理器菜单中设置是否使用这些条件

v0.2.4 尝试修复页面首次加载完成时脚本不会检查已有卡片,只会在向下滑时检查新增卡片的问题;加入greasyfork的自动更新链接,请务必更新

v0.2.3 版本号命名失误了,这个版本应该叫v0.3.0的 加入用户屏蔽词与自定义新卡片数量阈值功能,现在可以通过脚本管理器点击对应的选项进行设置了

v0.2.2 改变卡片移除逻辑(原本使用Element.remove()直接移除元素,但知乎自身逻辑会在通过点击首页的“推荐”按钮刷新页面时尝试移除所有曾添加的卡片,导致崩溃需重新加载整个页面;新方法通过给要移除的卡片加上"hidden"属性实现);加入控制台log颜色

v0.2.1 使用MutationObserver对向下滑动时新加入的卡片进行增量式处理,摒弃每次页面有变动即检查所有卡片(包括检查过的)的低效率形式

v0.2 除通过知乎api获取用户信息外的部分几乎全部重写,将获取头像与移除卡片的逻辑分离

v0.1-alpha 完成脚本的基本构建,测试可用

也请参见:Github仓库地址 Greasyfork页面