我用Python找出了删除自己微信的所有人并将他们自动化删除了

本文讲述了作者如何使用Python和Appium自动化工具,通过微信转账功能检测并删除了通讯录中将自己删除的好友,包括设置真机环境、获取通讯录列表、编写自动化脚本等步骤。

概述

你是否有微信被删了好友不自知,还傻傻的给对方发消息,结果出现了下图中那尴尬的一幕的经历呢?其实我们可以用Python提前把他们找出来并自动化删除避免尴尬的。

平时一直认为自己的心里素质过硬,不过遇到这种情况 …

在我缓了半个钟头(半分钟)之后,缓缓拿出了手机,打开微信,找到通讯录中的 ABC,默默地按下了删除按钮,此刻的我心如止水 …

好了,我们回到正题,为了避免再次出现上述情况,我决定把微信通讯录中删除了自己的人全部找出来并且删除,之前我已经在网上了解到检查自己的微信是否被删比较好的方式就是转账,通过转账我们可以实现无痕检测。

下面我们通过两张图片直观的看一下微信被删前后给别人转账的效果:

现在已经知道了检测方式,正在我准备挨个检测时,无意识的滑动了微信通讯录列表,100、200 … 500 …

我去!什么时候加了这么多人,滑动列表的同时我顺势扫了一眼微信名字:A卖保险、B办理信用卡、C游泳健身、D卖保健品 … 此刻我知道了微信通讯录中有这么多人的玄机,但是有个问题,这么多人我挨个手动执行转账还不累屎了 …

如果手动执行的方式行不通,那么可以通过编程的方式自动化执行吗?想到这里我陷入了沉思 …

突然我脑中闪了一下(不是抽筋哈),思绪渐明,前几天我不是写了一篇Python + Appium 自动化操作微信入门吗?用这个应该就可以实现,编程实现的基本思路如下:

  • 获取微信通讯录列表中每个人的名字(备注)并记录,这个是不会有重复的,因为即使在之前加好友时有重复的,自己也会在备注时给改了

  • 遍历获取到的通讯录列表,分别对每一个人执行转账操作,如果检测到是删除自己的人就对其执行删除操作,如果检测到不是删除自己的人则继续检测下一个人,依次往复循环

环境

因之前在模拟器上测试 Appium 模拟微信转账可能有点问题,因此本文使用真机实现。

先简单介绍一下真机环境,下面一起来看一下相应步骤。

  • 从桌角下取出我的小米5s手机(MIUI10.2、Android8.0.0),擦擦灰尘后用数据线将其连到自己的电脑上

  • 手机充了一会电之后开机,打开微信登录自己的微信号

  • 在手机中依次执行(点击):设置->我的设备->全部参数->MIUI版本(多次点击,开启开发者模式)->返回设置列表->更多设置->开发者选项->开启开发者选项并分别开启:USB调试、USB安装、USB调试(安全设置)选项,如图所示:

  • 此时手机上会弹出USB的用途弹框,我们选择传输文件(MTP)即可,如图所示:

  • 在电脑 CMD 中执行 adb devices 命令,看是否能找到自己的手机,比如下图所示就是成功的结果了

  • 在上面步骤中你可能出现找不到手机的情况,通常这种情况是驱动问题,这里介绍一种简单的处理方式:下载一个驱动精灵,安装启动之后点击驱动管理,之后安装相应驱动即可解决,如图所示:

通过上面的一系列操作,我们已经处理好了真机环境了。

Appium 的环境本文就不说了,如果不清楚的话,可以看一下:Python + Appium 自动化操作微信入门

实现

下面我们开始手动敲代码,如果对 Appium 基本代码操作不了解的话,还是可以去看一下我之前写的这篇:Python + Appium 自动化操作微信入门,真机与模拟器的使用基本一样。

首先看一下相应参数配置,代码实现如下:

desired_caps = {       "platformName": "Android", # 系统       "platformVersion": "8.0.0", # 系统本号       "deviceName": "m5s", # 设备名       "appPackage": "com.tencent.mm", # 包名       "appActivity": ".ui.LauncherUI", # app 启动时主 Activity       'unicodeKeyboard': True, # 使用自带输入法       'noReset': True # 保留 session 信息,可以避免重新登录   }   

接着看一下如何获取微信通讯录名字(备注)列表?代码实现如下:

# 获取通讯录列表   def get_address_list():       driver.find_elements_by_id('com.tencent.mm:id/cn_')[1].click()       # 获取昵称(备注)       address_list = driver.find_elements_by_id('com.tencent.mm:id/dy5')       remarks = []       for address in address_list:           remark = address.get_attribute("content-desc")           # 排除自己和微信官方号           if remark != "自己的微信名" and "微信" not in remark:               remarks.append(remark)       return remarks   

取到了微信通讯录列表之后,我们就可以对其进行遍历检测了,下面看一下如何实现检测自己的微信是否被删,代码实现如下:

# 判断是否被删   def is_delete(remark, count):       if count == "1":           time.sleep(2)           print('点击微信搜索框')           driver.find_element_by_id('com.tencent.mm:id/cn1').click()       time.sleep(2)       print('在搜索框输入搜索信息')       driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(remark)       time.sleep(2)       print('点击搜索到的好友')       driver.find_element_by_id('com.tencent.mm:id/tm').click()       time.sleep(2)       # 转账       driver.find_element_by_id('com.tencent.mm:id/aks').click()       time.sleep(2)       driver.find_elements_by_id('com.tencent.mm:id/pa')[5].click()       time.sleep(2)       driver.find_element_by_id('com.tencent.mm:id/cx_').click()       time.sleep(2)       driver.find_element_by_id('com.tencent.mm:id/cxi').click()       time.sleep(5)       # 判断是否被删       is_exist = is_element_exist('com.tencent.mm:id/jh')       if is_exist is True:           return remark       else:           return False   

上述方法中,如果检测到是删了自己微信的人就返回那个人的微信名(备注),然后我们将这些人记录起来;如果检测到不是删除自己微信的人就返回 False。

上述过程执行完了之后,我们就可以获取到所有删了自己微信的人了,接下来我们就可以将这些人都从自己微信通讯录中删除了,删除实现的代码如下:

# 删除把自己删除的人   def del_person(nicks):       for inx, val in enumerate(nicks):           time.sleep(2)           if inx == 0:               print('在搜索框输入搜索信息')               driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(val)           else:               time.sleep(2)               print('点击微信搜索框')               driver.find_element_by_id('com.tencent.mm:id/cn1').click()               print('在搜索框输入搜索信息')               time.sleep(1)               driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(val)           time.sleep(2)           print('点击搜索到的人')           driver.find_element_by_id('com.tencent.mm:id/tm').click()           time.sleep(2)           print('点击聊天对话框右上角...')           driver.find_element_by_id('com.tencent.mm:id/cj').click()           time.sleep(2)           print('点击头像')           driver.find_element_by_id('com.tencent.mm:id/f3y').click()           time.sleep(2)           print('点击联系人右上角...')           driver.find_element_by_id('com.tencent.mm:id/cj').click()           time.sleep(2)           print('点击删除按钮')           driver.find_element_by_id('com.tencent.mm:id/g6f').click()           time.sleep(2)           print('点击弹出框中的删除')           driver.find_element_by_id('com.tencent.mm:id/doz').click()   

至此,我们就利用 Python + Appium 实现了自动化找出微信中删除自己的人并将其删除的工作了。

以上就是“我用Python找出了删除自己微信的所有人并将他们自动化删除了”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至优快云官方,朋友如果需要可以直接微信扫描下方优快云官方认证二维码免费领取【保证100%免费】。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值