1. 概述

不知你是否遇到过在微信上给通讯录中的某个人发消息,结果出现了这一幕:

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

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

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

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

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

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

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

突然我脑中闪了一下(不是抽筋哈),思绪渐明,前几天我不是写了一篇:Python + Appium 自动化操作微信入门吗?用这个应该就可以实现,编程实现的基本思路如下:获取微信通讯录列表中每个人的名字(备注)并记录,这个是不会有重复的,因为即使在之前加好友时有重复的,自己也会在备注时给改了

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

2. 环境

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

先简单介绍一下真机环境,下面一起来看一下相应步骤。从桌角下取出我的小米5s手机(MIUI10.2、Android8.0.0),擦擦灰尘后用数据线将其连到自己的电脑上

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

在手机中依次执行(点击):设置->我的设备->全部参数->MIUI版本(多次点击,开启开发者模式)->返回设置列表->更多设置->开发者选项->开启开发者选项并分别开启:USB调试、USB安装、USB调试(安全设置)选项,如图所示:此时手机上会弹出USB的用途弹框,我们选择传输文件(MTP)即可,如图所示:在电脑 CMD 中执行 adb devices 命令,看是否能找到自己的手机,比如下图所示就是成功的结果了在上面步骤中你可能出现找不到手机的情况,通常这种情况是驱动问题,这里介绍一种简单的处理方式:下载一个驱动精灵,安装启动之后点击驱动管理,之后安装相应驱动即可解决,如图所示:

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

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

3. 实现

下面我们开始手动敲代码,如果对 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 找出了删除我微信的所有人并将他们自动化删除了​mp.weixin.qq.com

python批量删除微信好友_我用 Python 找出了删除我微信的所有人并将他们自动化删除了...相关推荐

  1. python批量删除微信好友_我用Python找出了删除我微信的所有人并将他们自动化删除了...

    不知你是否遇到过在微信上给通讯录中的某个人发消息,结果出现了这一幕: 平时一直认为自己的心里素质过硬,不过遇到这种情况 ... 在我缓了半个钟头(半分钟 )之后,缓缓拿出了手机,打开微信,找到通讯录中 ...

  2. python爬取微信好友_如何用 Python 爬取自己的微信朋友

    原标题:如何用 Python 爬取自己的微信朋友 作者 Alfred 本文转载自网络,如涉及侵权请及时联系我们 微信作为一款拥有将近9亿用户的超级APP,已经成为很多人生活中不可或缺的一部分,聊天.分 ...

  3. python批量resize图片大小_如何用Python智能批量压缩图片?

    本文一步步为你介绍,如何用Python自动判断多张图片中哪些超出阈值需要压缩,且保持宽高比.如果你想了解Python图像处理的基础知识,欢迎动手来尝试. 痛点 我喜欢用Markdown写文稿,然后发布 ...

  4. python批量识别图片中文字_如何用Python识别图片中的文字?

    一.前言 不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制.或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存.但是当我们想用到里面的 ...

  5. python批量下载文件教程_零基础Python教程:教你爬取天堂网1920*1080大图片(批量下载)...

    这篇文章将针对上篇文章的未尽事宜进行完善,完成图片的批量抓取. /2 图片网址解析/ 1. 我们首先来分析一下这个图片的地址在哪里.我们选择图片,然后右击网页检查,可以看到图片的路径,如下图所示. 2 ...

  6. 你了解微信好友多少?用Python可以更清楚

    运行平台: Windows Python版本: Python3.6   IDE: Sublime Text 1.准备工作 1.1 库介绍 只有登录微信才能获取到微信好友的信息,本文采用 wxpy 该第 ...

  7. Linux fs清理文件,linux找出已经删除但磁盘空间未释放的大文件并清空

    linux找出已经删除但磁盘空间未释放的大文件并清空 1.找出已经删除但磁盘空间未释放的文件 如果文件已经删除,但实际的磁盘空间未释放,这个时候文件句柄fd相关信息还在内存中,可以通过lsof命令找出 ...

  8. 在linux中查找重复的文件夹,如何在Linux上找出并删除重复的文件:FSlint

    大家好,今天我们会学习如何在Linux PC或者服务器上找出和删除重复文件.这里有一款工具你可以工具自己的需要使用. 无论你是否正在使用Linux桌面或者服务器,有一些很好的工具能够帮你扫描系统中的重 ...

  9. linux找出已经删除但磁盘空间未释放的大文件并清空

    1.找出已经删除但磁盘空间未释放的文件 如果文件已经删除,但实际的磁盘空间未释放,这个时候文件句柄fd相关信息还在内存中,可以通过lsof命令找出,比如打开文件的pid和读写文件的系统fd. lsof ...

最新文章

  1. 1小时学会:最简单的iOS直播推流(七)h264/aac 硬编码
  2. 为了杀蚊子,这位博士用树莓派DIY了一把激光枪!网友:伤到人怎么办?
  3. 宏基因组文章目录(9月1日更新)
  4. Nginx服务器搭建和基本配置详解
  5. mysql索引分析和优化_MySQL索引分析和优化
  6. JHipster入门,第2部分
  7. homelede软路由设置方法_斐讯无线路由器怎么设置 斐讯无线路由器设置方法【详解】...
  8. Spring + Dubbo + zookeeper (linux) 框架搭建
  9. 360WIFI 2 树莓派 上网-- 失败
  10. python中的pyinstaller库_Python(00):PyInstaller库,打包成exe基本介绍
  11. html5 crosshair,嘿,纯正ROG血统 CROSSHAIR VIII IMPACT (开箱篇)最终版
  12. tp5组装数据_tp5数据库查询和模型结合使用
  13. 163编辑器 自适应宽度 +更改高度
  14. TCPIP详解卷一概述 学习记录 2020/4/13
  15. 贝叶斯决策(Bayesian Decision Theory)
  16. tar:time stamp in the future
  17. vue改变class名字_vue添加class类名
  18. golang 数学函数
  19. AVD Nexus_5X_API_P is already running. If that is not the case, delete the files at ...
  20. python对PDF分割、合并、裁剪等

热门文章

  1. Microsoft SDL-威胁建模工具Threat Modeling Tool
  2. IMAU OJ一招制胜
  3. FLUKA版本更新过程
  4. linux mediainfo java,linux下安装mediainfo
  5. Mikrotik RouterOS安全性指南
  6. Docker部署及基础用法
  7. 艾滋病/HIV最新研究成果进展(2021年11月)
  8. 用计算机解锁ipad密码忘了怎么办,忘记iPad开机密码怎么办 iPad开机密码忘记了解决方法【详解】...
  9. VUE 调用PC摄像头,亲测可用
  10. 机房收费系统——宏观把控