Aquabet

Talk is cheap. Show me the code.

0%

逃离知乎计划

前言

  因不满知乎的隐私政策,漫天飞的广告和对推送流的修改,逃离内容推荐算法的投喂,故有此逃离知乎计划。
  但我乃凡夫俗子,对知乎里可爱的小姐姐和可爱的数据结构[0]仍有眷念,故选择保留知乎账号不注销,只是清空账号绝大部分内容。
  本计划分为以下两步:

  • 清空账号
  • 建立RSS推送流

上半部分:清空账号

需要被删除的内容

  主要是知乎个人首页的动态一栏,其中所有点赞,收藏,关注等都会被展示给所有人。

删除方法

  手机客户端 -> 我的 -> 个人主页 -> 动态 -> 右下角的三个点 -> 删除此条动态。
  我的知乎账号肉眼估计有上万条动态,手抽筋两次就删完了,所以当然选择用脚本搞定。我这里选用的是Auto.js,可以在安卓下免root运行脚本。苹果用户也可在电脑下载安卓虚拟机运行。

环境配置

  手机安装Auto.js。建议支持正版。
  电脑下载并配置VsCode插件Auto.js-VSCodeExt [1]

写脚本

  目标很简单,步骤如下:

  1. 找菜单键
  2. 点菜单键
  3. 找删除键
  4. 点删除键

  使用Auto.js的布局分析,可以很容易找出所需控件的信息。打开方式如下:
  Auto.js -> 左侧栏 -> 打开悬浮窗。
  进入需要分析的界面 -> 点击悬浮窗 -> 从上到下第三个按键 -> 布局分析 -> 点需要被分析的框 -> 查看控件信息。就可以看到类似下图所示的信息。

  在实现过程中,因未知原因,使用id("控件id").findOnce()找不到控件(希望大佬们赐教)。最后无奈选择通过className找该条回答的卡片控件,并求出该控件的右下角坐标,通过固定计算(上图的Bounds,算两控件的关系,此处是x -= 71, y-= 52),找出所需菜单控件的位置。此代码鲁棒性极差,可移植性几乎为0,但是能用。

  最终代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
console.show()
while (true) {
var bar1 = className("android.view.ViewGroup").findOnce(4);
if (bar1) {
var barr = bar1.bounds().right
var barb = bar1.bounds().bottom
console.log(barr)
console.log(barb)
click(barr - 71, barb - 52);
sleep(1000)
var text1 = text("删除此条动态").findOnce();
if (text1) {
var barx = text1.bounds().centerX()
var bary = text1.bounds().centerY()
console.log(barx, bary)
click(barx, bary)
sleep(1000)
} else {
console.log("ERROR1")
break;
}
} else {
console.log("ERROR0")
break;
}
}

运行

  将电脑与手机连接在同一局域网下,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