遇到微信牛皮癣怎么办?我用Python,轻轻松松就清除干净

微信群牛皮癣,指的是在微信群里毫无下限的群发小广告的用户,是微信群主最痛恨的一波人。

他们伪装成正常人混进群然后不停的发送广告轰炸,严重的打乱了群内的技术交流气氛

或者是一声不吭的去骚扰每一个群成员:point_down:

虽然不清楚是什么能够驱使他们这样不折不扣的努力成为最强微信群牛皮癣(可能是钞能力),但在经历太多次的骚扰之后,我开始思考是否可以用Python消灭他们。

第一回合

经过这几个月,近百份发广告用户的样本训练,我这个“ 人工智能 ”基本可以判断一个非正常用户 至少满足下面几条中的三条以上 :

没有设置 微信号

头像为网红女生

微信名为特殊符号或者表情

没发过 朋友圈

没有 朋友圈 背景图

通过后不会有除进群申请外的其他回复

不知从何时起,虽然这些库还能安装使用但是微信基本已经 禁止了大部分人的网页版微信登陆权限 ,因此当我使用多个微信号分别扫完登陆微信的二维码之后,无一例外的提示我

1203为了你的帐号安全,此微信号已不允许登录网页微信。你可以使用Windows微信或Mac微信在电脑端登录。

这就让人头疼了,总不能手动的去一个一个check我的几千个微信好友吧,于是我开始思考是否有其他的解决办法。

第二回合

RequestsSeleniumpynput

pynput是一款使用Python来控制和监控电脑鼠标、键盘的第三方库,直接用API取数据搞不定,那么我就像Selenium一样, 模拟点击 一个一个好友来实现我想要的操作。

因为没有太多依赖库所以安装起来很简单,直接 pip install pynput 即可,使用起来也很简单,对于鼠标操作只依赖坐标。

pynput除了使可以使用 Controller 来控制鼠标,也可以监控鼠标,比如使用下面的代码就可以记录下程序启动后鼠标的每一个点击操作所在的位置:point_down:

frompynputimportmousedefon_move(x, y ):print('鼠标移动至 {0}'.format(  (x,y)))defon_click(x, y , button, pressed):print('{0} 在坐标 {1}'.format('鼠标点击'ifpressedelse'鼠标释放', (x, y)))ifnotpressed:returnFalsewhileTrue:withmouse.Listener(on_move = on_move,on_click = on_click)aslistener:  listener.join()

我们只需要保持微信窗口不移动,再记录下每一个关键位置的坐标( 微信图标位置,群聊窗口位置,单个群成员头像位置 )之后,就可以按照模拟以下操作实现:

点击微信app

点击需要的群聊

依次点击每一个群成员头像

移动到微信号的位置

双击该微信号

复制该微信号判断是否为初始微信号

在上面的过程中,值得说的是最后一步,复制我们可以使用pynput中的键盘控制器,在双击选中对应微信号之后通过下面的代码实现模拟键盘输入 Command + C 完成复制操作

frompynput.keyboardimportKeyfrompynput.keyboardimportControllerasController1keyboard = Controller1()withkeyboard.pressed(Key.cmd):    keyboard.press('c')    keyboard.release('c')

但是粘贴则不需要使用pynput通过模拟 command+c 来粘贴到另一个编辑中复杂过程,我们可以使用第三方库 pyperclip ,直接通过下面两行代码即可将复制好的文字转为 字符串

importpyperclippyperclip.paste()

在将群成员的微信号转换为 字符串 后,不论我们是通过判断字符串的长度还是用正则表达式或者是其他的方法都可以轻松的判断该成员的微信号是否为初始微信号,实现规则1的判断,下面的代码与动态图就是获取第一个群成员微信号的 完整过程

frompynput.mouseimportButton, Controllerimporttimefrompynput.keyboardimportKeyfrompynput.keyboardimportControllerasController1importpyperclipmouse = Controller()# 点击微信mouse.position = (1046.14453125,4.546875)time.sleep(2)mouse.press(Button.left)mouse.release(Button.left)#点击头像mouse.position = (1194.140625,441.05859375)time.sleep(1)mouse.press(Button.left)mouse.release(Button.left)# 点击选中文本mouse.position = (965.60546875,284.0390625)time.sleep(1)mouse.click(Button.left,2)keyboard = Controller1()withkeyboard.pressed(Key.cmd):    keyboard.press('c')    keyboard.release('c')    time.sleep(1)wechatid = pyperclip.paste()print(f"微信号{wechatid}疑似广告号"iflen(wechatid) >20elsef"微信号{wechatid}不是广告号")

可以看到成功将早小起的微信从广告号中排除

那么接下来只需要记录下每两个群成员之间间隔的坐标距离,之后循环去 模拟滚动 或者 下拉 来实现上述过程,就可以将群里所有成员的微信号根据规则1进行判断,找到异常的那些成员 单独进行判断 。

可以看到最终是找到了6个疑似广告号的微信,接下来通过其他规则的手动判断最终将两个用户判定为广告高风险用户并移除。

写在最后

通过上面的操作,依旧很难去判断是否真的踢对了人,如果踢错了,那么则粉丝-1,同时也可以发现想用Python准确找到群里的牛皮癣还是非常困难的, pynput 有着和 selenium 同样的缺点,那就是由于 模拟真人操作而导致的速度慢 ,并且它的定位方式 仅支持坐标 ,所以还需要保证在操作的过程中微信窗口不可以被移动,否则之前记录的元素将全部失效,此处建议开发者可以升级更多的定位方式。

今日分享就到这里,有想要学习Python基础的,可以私信我“学习+py”,我可以免费分享关于Python基础的学习课程,提供给大家拿去学习,大家记得给小编点一下关注哦~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,743评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,296评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,285评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,485评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,581评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,821评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,960评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,719评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,186评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,516评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,650评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,936评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,757评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,991评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,370评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,527评论 2 349