由于微信的限制,人数超过一百以后,只有邀请才能加入。所以,如果想要组织大型的在线活动,就只有建立很多个分群。然而分群的问题在于,会有很多人重复加群,挤占了本来就缺乏的空间。所以需要找到一个可行的办法,清除两个群中的重复人员。

可行的方法

在微信网页版中,通过点击群名称右侧的向下箭头,可以打开一个有所有人昵称的面板,通过审查工具可以得到对应的代码,右击选择Edit As HTML,全选复制,保存到a.txt中,然后执行

cat a.txt | grep -o "\">.*</p>" > fen.txt

我们便可以将所有人的名字都输出到fen.txt中,尽管还有着一些<>的符号,但是已经不影响识别了,故不再做处理。

对两个群分别如此操作之后,我们得到了两个群的成员名单。 然后执行如下Python代码:

with open('fen.txt', 'r') as f:
    fen = f.readlines()
    f.close()
with open('main.txt', 'r') as f:
    main = f.readlines()
    f.close()

for i in main:
    for j in fen:
        if i == j:
            print(i)

得到的输出就是两个群中重复的成员,然后一一删除即可。

方案反思

存在的缺陷

  • 自动化程度较低
  • 如果存在用户同名的话,会导致删除错误的用户。

可能的改进

  • 获取资料不需要手动点击审查元素,通过jQuery的text()函数也可以实现。
  • 最后实现删除的过程可以进一步优化,通过模拟用户点击的脚本实现(存在隐私泄漏风险)。
  • 可以获取用户的UUID,以避免重名现象。

更新日志

  • 2016年02月28日 首次发布