前言
因不满知乎的隐私政策,漫天飞的广告和对推送流的修改,逃离内容推荐算法的投喂,故有此逃离知乎计划。
但我乃凡夫俗子,对知乎里可爱的小姐姐和可爱的数据结构[0]仍有眷念,故选择保留知乎账号不注销,只是清空账号绝大部分内容。
本计划分为以下两步:
- 清空账号
- 建立RSS推送流
上半部分:清空账号
需要被删除的内容
主要是知乎个人首页的动态一栏,其中所有点赞,收藏,关注等都会被展示给所有人。
删除方法
手机客户端 -> 我的 -> 个人主页 -> 动态 -> 右下角的三个点 -> 删除此条动态。
我的知乎账号肉眼估计有上万条动态,手抽筋两次就删完了,所以当然选择用脚本搞定。我这里选用的是Auto.js
,可以在安卓下免root运行脚本。苹果用户也可在电脑下载安卓虚拟机运行。
环境配置
手机安装Auto.js。建议支持正版。
电脑下载并配置VsCode插件Auto.js-VSCodeExt
[1]。
写脚本
目标很简单,步骤如下:
- 找菜单键
- 点菜单键
- 找删除键
- 点删除键
使用Auto.js的布局分析,可以很容易找出所需控件的信息。打开方式如下:
Auto.js -> 左侧栏 -> 打开悬浮窗。
进入需要分析的界面 -> 点击悬浮窗 -> 从上到下第三个按键 -> 布局分析 -> 点需要被分析的框 -> 查看控件信息。就可以看到类似下图所示的信息。
在实现过程中,因未知原因,使用id("控件id").findOnce()
找不到控件(希望大佬们赐教)。最后无奈选择通过className
找该条回答的卡片控件,并求出该控件的右下角坐标,通过固定计算(上图的Bounds,算两控件的关系,此处是x -= 71, y-= 52
),找出所需菜单控件的位置。此代码鲁棒性极差,可移植性几乎为0,但是能用。
最终代码如下:
1 | console.show() |
运行
将电脑与手机连接在同一局域网下,Auto.js左侧栏中打开连接电脑,输入电脑ip,在VsCode中按 Ctrl+Shift+P
,输入Auto.js: Run
即可将代码推送到手机并运行。
下半部分:建立RSS推送
需求分析
知乎官方肯定是没给RSS接口的,需要自己用服务器去爬虫数据。本着不重复造轮子的原则,找到了lilydjwg大佬写的morerssplz[2]。
作者lilydjwg不仅开源了代码,还提供服务器供免费使用。我就暂时先白嫖用着了,有空再迁移到自己的服务器上。
使用方法
根据作者提供的网站[3],我需要订阅的是知乎动态和知乎用户赞同。以订阅知乎用户arXivDaily的动态为例,用网页版知乎打开该用户主页,得到链接https://www.zhihu.com/people/arxivdaily
我们只需要用户的个人主页地址:arxivdaily
,添加到https://rss.lilydjwg.me/zhihu/
后面即可。
最终的RSS订阅链接如下:https://rss.lilydjwg.me/zhihu/arxivdaily
,将其输入RSS阅读器,就可以愉快逃离知乎的广告。
我在手机使用app知微
,最终效果如图:
update:找到个更好用更全的RSS生成器,详见[4]。
挖坑
逃离知乎当然只是宏大计划中的第一步,先拿知乎开刀也是因为知乎最近一次更新中,关注的人的点赞内容被知乎的推荐内容完全替代。想看该部分内容只能依次点进关注的人的首页。既不保证用户的隐私(隐藏或部分隐藏动态),又不方便用户使用,唯一好处是给首页大量广告增加了曝光量。知乎产品经理****。
因为众所周知的原因,国内的每个App都有一个当操作系统的心。下一步的计划当然是逃离国产App计划。对于有网页版的网站,尽量使用网页版(如淘宝)或通过爬虫只看关注的内容(如微博),避免垃圾推送。对于QQ,微信等软件,全部通过服务器二次转发过滤广告、降低手机需求。目前很多功能没有搜到相关的轮子,任重且道远。
参考资料
[0] 引自lxl:退乎,这号现在就拿来看看可爱的小姐姐和可爱的数据结构什么的 RhmBWT - 知乎
[1] hyb1996/Auto.js-VSCode-Extension
[2] lilydjwg/morerssplz
[3] 各种转 RSS 服务
[4] RSSHub