文 | 某某白米饭

来源:Python 技术「ID: pythonall」

随着微信的使用时间越长,微信好友也越来越多,有些好友将你删除了你也不知道。当我们发消息的时候会出现下面扎心的一幕,然后默默将他删除

使用 Appium

基础的 appium 使用在公众号文章 《解放双手,提高生产力,这款神器你值得拥有》 中已经讲过了,这里使用最新 1.20.0 版本的 appium,旧版本会出现真机微信闪退的情况

安装一下 Python 用到的模块

pip install Appium-Python-Client

获取好友列表

在 Pycharm 中配置一下启动环境

desired_capabilities = {'platformName': 'Android', # 操作系统'deviceName': '2a254a02', # 设备 ID,使用 cmd 中 adb devices 命令得到'platformVersion': '10.0.10', # 设备版本号,在手机设置中查看'appPackage': 'com.tencent.mm', # app 包名'appActivity': 'com.tencent.mm.ui.LauncherUI', # app 启动时主 Activity'noReset': True # 是否保留 session 信息 避免重新登录
}driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities)
print('微信启动')

下图是 appium 启动后截图

点击红框中按钮,将上面的参数填上,点击 start Session

启动后点击刷新按钮,看到的界面和真机上一样了,在真机上点击通讯录按钮并刷新界面

在 appium 界面点击一个好友,可以看到这个好友有一个 content-desc 和 resource-id 代表了昵称和资源 id

然后我们用 Python 获取所有的好友昵称

# 所有好友
friends = []
def get_friends():# 好友idaddress_list = driver.find_elements_by_id('com.tencent.mm:id/dy5')for address in address_list:# 昵称friend = address.get_attribute('content-desc')# 过滤掉自己、微信团队、文件夹传输助手if friend != '某某白米饭' and friend != '微信团队' and friend != '文件夹传输助手':friends.append(friend)# 获取到最后一个好友返回if friend == '????Jiuki????':return# 向上滚动获取好友,获取好友会重复,最后结果需过滤driver.swipe(100, 1000, 100, 500)# 递归循环得到所有好友get_friends()

得到被对方删除的好友

在微信中被对方删除后,是不能进行转账的,这也是用来判断被对方删除的依据

下面四步骤就是用 Python 模拟微信转账操作

  1. 按上面获取的昵称搜索得到好友

  2. 在好友对话框中点击 + 号,获取到转账按钮

  3. 在转账界面输入 1 元,点击转账按钮,得到是否为好友结果

  4. 最后返回到搜索页面清空搜索框内容

# 判断是否被删
def is_del(f):time.sleep(2)driver.find_element_by_id('com.tencent.mm:id/cn1').click()time.sleep(2)# 在搜索框输入搜索信息driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(f)time.sleep(2)#点击好友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)# 数字 1driver.find_element_by_id('com.tencent.mm:id/cx_').click()time.sleep(1)# 付款界面转账按钮driver.find_element_by_id('com.tencent.mm:id/cxi').click()time.sleep(2)# 判断是否被删is_exist = is_element('com.tencent.mm:id/dos')if is_exist:# 不能转账就点击确定按钮driver.find_element_by_id('com.tencent.mm:id/doz').click()time.sleep(2)else:# 可以转账就后退driver.press_keycode(4)# 后退到 搜索页面driver.press_keycode(4)driver.press_keycode(4)driver.press_keycode(4)driver.press_keycode(4)# 清空文本框driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys('')return fdef is_element(id):flag = Nonetry:driver.find_element_by_id(id)flag = Trueexcept NoSuchElementException:flag = Falsefinally:return flag

因为 appium 操作 APP 有延迟,所以在每个操作后延迟 2 秒

删除好友

在得到被删好友的联系人之后,用个步骤在 Python 中微信删除好友

  1. 在搜索框中用昵称搜索被删好友的联系人

  2. 进入对话界面后,点击界面右上角的...

  3. 点击好友头像

  4. 点击个人信息界面右上角的...

  5. 点击删除按钮

  6. 在选择框中点击删除

# 删除好友
def del_friend(friend):time.sleep(2)driver.find_element_by_id('com.tencent.mm:id/cn1').click()time.sleep(2)driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(friend)time.sleep(2)#点击好友driver.find_element_by_id('com.tencent.mm:id/tm').click()time.sleep(2)# 右上角...driver.find_element_by_id('com.tencent.mm:id/cj').click()time.sleep(2)# 头像driver.find_element_by_id('com.tencent.mm:id/f3y').click()time.sleep(2)# 右上角...driver.find_element_by_id('com.tencent.mm:id/cj').click()time.sleep(2)# 删除按钮driver.find_element_by_id('com.tencent.mm:id/g6f').click()time.sleep(2)# 选中删除driver.find_element_by_id('com.tencent.mm:id/doz').click()

总结

学习了 appium 的使用,并用它自动化清理了微信僵尸好友。

PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!

老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

代码获取方式】

识别文末二维码,回复:210121

用 Python + Appium 的方式自动化清理微信僵尸好友相关推荐

  1. python批量删除微信好友_用 Python + Appium 的方式自动化清理微信僵尸好友

    随着微信的使用时间越长,微信好友也越来越多,有些好友将你删除了你也不知道.当我们发消息的时候会出现下面扎心的一幕,然后默默将他删除 使用 Appium 基础的 appium 使用在公众号文章 < ...

  2. 强大!Python 自动化清理微信僵尸好友

    文 | 某某白米饭 来源 | Python 技术 自从 微信网页版 被限制登陆之后wxpy库就基本没啥用了,但是还是有很多同学想学微信自动化,其实有些功能是可以用其他自动化库代替的,今天就给大家介绍一 ...

  3. python-app自动化查找微信僵尸好友

    通过微信转账的方式来判断,这里没有做删除操作,可以自己去写,对于已经僵尸好友和转账异常的用户会存储到对应文件中,方便查看自己手动删除或重新添加 转账页面不同的提示如下几种,所以要分类型操作:      ...

  4. 【Android自动化】AccessibilityService实战-微信僵尸好友检测

    0x1.引言 上节我们学习了AccessibilityService无障碍的基础知识,并写了一个简单的微信自动登录的小案例.相信大家都意犹未尽,所以本节安排一波实战 -- 微信僵尸好友检测. 啥是 僵 ...

  5. 基于python + Appium的安卓自动化

    基于python + Appium的安卓自动化 最近要双11了,刷喵糖比较火,看到github上一个刷喵糖的项目testerzhang/taobaomiao.git,也成功跑起来了,顺便研究下了实现方 ...

  6. Python+Appium实现删除微信“僵尸好友”

    话不多说,本文旨在功能使用,不讲解原理!!! 本文所需环境配置: win10 JDK1.8 Python 3.6.8 Appium 1.15.1 android-sdk 文件获取:https://pa ...

  7. 记录安装python+appium+模拟器的自动化

    1.安装jdk---安装sdk,配置环境变量 2.安装python --安装pycharm 3.在python中安装appium库 4.使用adb connect 127.0.0.1:62001连接模 ...

  8. Python+Appium自动化测试-编写自动化脚本

    我们实际跑自动化脚本的过程中,是需要用脚本调用appium启动app的,接下来就尝试写Python脚本启动app并登陆app.环境为Windows10 + Python3.7 + appium1.18 ...

  9. Python清理微信被好友删除的人

    脚本来自:https://github.com/0x5e/wechat-deleted-friends 由于微信网页登录接口已经限制了,不能登录,可以看下原理:通过把好友循环添加到群,查看返回的代码来 ...

最新文章

  1. led伏安特性实验误差分析_检测实验室误差分析知识汇编
  2. 设计模式复习-适配器模式
  3. 5.7 matlab数据插值与曲线拟合的比较
  4. 【洛谷 P2763】 试题库问题(最大流)
  5. Spring Cloud GatewayAPI网关服务
  6. 品牌管理-JSR303数据校验
  7. ubuntu上最使用jni最简单易懂的例子
  8. table 首先冻结_首先记录异常的根本原因
  9. python 函数、面向对象
  10. 前端学习(1992)vue之电商管理系统电商系统之实现搜索和清空
  11. 分布式系统关注点(21)——构建「易测试」系统的“六脉神剑”
  12. Linux内存之Cache
  13. 今天中国获得金牌数量是7块,位居奖牌榜首位
  14. SpringBoot项目在Gitee的控管步骤
  15. 【POI 2007】Ridges and Valleys山峰和山谷(GRZ)
  16. 从手工测试到自动化测试进阶,需要自学什么?去尝试年薪50W是个什么体验...
  17. Python字符串index()
  18. 编译ok6410linux内核,OK6410新手学习心得(一)Linux中加入led驱动及测试程序详解...
  19. Windows 2003系统安全+IIS下Web与FTP的完美结合(下)
  20. 汉字在字库中的偏移地址计算

热门文章

  1. 2021最新 阿里云购买学生机服务器搭建部署一条龙服务
  2. 蓝桥杯真题:数字三角形
  3. tools1.0.0
  4. 2021年5月23日
  5. Alibaba Sentinel 限流与熔断初探(技巧篇)
  6. 为什么ThinkPad国行版这么贵?
  7. PDF Editor 6 Pro for Mac(pdf编辑器)
  8. 网站百度统计被恶意刷广告的处理方法
  9. linux服务脚本书写,编写一个服务脚本的示例
  10. 传输网,交换网,接入网的区别