文 | 某某白米饭

来源 | Python 技术

自从 微信网页版 被限制登陆之后wxpy库就基本没啥用了,但是还是有很多同学想学微信自动化,其实有些功能是可以用其他自动化库代替的,今天就给大家介绍一下如何使用 appium库 删除那些僵尸好友!

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

一、下载 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自动化清理了微信僵尸好友,其实appium是一个非常强大且操作简单的库,你完全可以用它去做更多的事情!

猪哥之前就是用appium库做了微信搜索结果存储的程序,非常好用,下次有机会再为大家带来一些关于appium库的实践案例!

本文源码:https://github.com/JustDoPython/python-examples/tree/master/moumoubaimifan/wxDelFriends

菜鸟编程大本营,已经正式上线

专注于分享趣味的编程技巧,不限于Java, Python ,Go, Javascript等语言,让菜鸟爱上编程,进阶成为高手,欢迎关注。

菜鸟编程本营,从菜鸟进阶高手

爆款文案

  • “裂开了,苦涩了,翻白眼”!我用Python画出微信新出的表情包

  • 吃瓜群众,我用五行Python代码让微博热点动起来!

  • 抖音创始人张一鸣:10 年面试 2000 人,我发现混的好的人,全都有同一个特质

  • 卧槽!没想到,用Python竟能做五仁月饼

  • Python 初学者进阶的九大技能

  • 终于,Flask 迎来了真正的对手!

  • 7个最佳的学习Python编程的开源库

  • 3287亿!我用20行Python代码预测双十一成交额,猜中送红包哦

点这里,获取新手福利

强大!Python 自动化清理微信僵尸好友相关推荐

  1. 用 Python + Appium 的方式自动化清理微信僵尸好友

    文 | 某某白米饭 来源:Python 技术「ID: pythonall」 随着微信的使用时间越长,微信好友也越来越多,有些好友将你删除了你也不知道.当我们发消息的时候会出现下面扎心的一幕,然后默默将 ...

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

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

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

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

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

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

  5. 【Python自动化】微信自动化智能回复

    [Python自动化]微信自动化智能回复 参考资料: 感谢晚枫大大提供的工具包,教程链接如下:又一个微信聊天机器人横空出世了,人人可用!,B站视频链接如下:又一个微信聊天机器人发布了,人人可用!不需要 ...

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

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

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

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

  8. python实现给微信指定好友定时发消息

    python有很多有趣的库,其中wxpy是连接微信的接口,具体可以查看官方文档:http://wxpy.readthedocs.io/zh/latest/index.html.可以实现自动操作,wxp ...

  9. python开发程序知道微信好友是否已读信息吗_基于Python+adb实现微信是否好友检测...

    本文介绍的基于Python+adb实现的微信好友检测,是通过adb操控手机,模拟人的点击.截屏.然后调用OCR接口实现好友检测,对应用无侵入,无需扫描登录即可实现好友检测.网上看到一些文章类似功能的实 ...

最新文章

  1. boost::asio异步模式的C/S客户端源码实现
  2. mysql中order by优化的那些事儿
  3. 解决main.o(.data) type RW incompatible with bsp.o(.ARM.__AT_0x24001000) type ZI in er RW_IRAM2.
  4. jzoj4209-已经没有什么好害怕的了【差分】
  5. 在python中用递归的方法编程_python基础之函数,递归,内置函数
  6. (一)KitJs瀑布流组件特点
  7. :继续教育学习助手_我们自己做:教育的开放组织
  8. 4999元起!iQOO 9 Pro今日首销:骁龙8旗舰处理器+独立显示芯片Pro
  9. LeetCode:路径总和II【113】
  10. mysql binlog 备份_linux定时备份mysql数据库
  11. java 甘特图_[Java教程]JQuery.Gantt(甘特图)开发
  12. 使用git管理工具sourcetree拉取代码
  13. 傲骨贤妻第一季/全集The Good Wife迅雷下载
  14. SCAU 1038 打印图案
  15. Facial Feature Embedded CycleGAN for VIS-NIR Translation 论文解读
  16. iPhone蓝牙技术学习
  17. web应用集成WPS
  18. DB9针型:RS485输出信号及接线端子引脚分配
  19. 使用Numpy创建数组_总结
  20. 解决Word2010中插入图片时变成空白框问题

热门文章

  1. javascript汉字转换成拼音
  2. Shell 写入csv处理中文乱码
  3. 华为推送新利器,完美契合用户体验
  4. java 快速合并文件_java 实现切割文件和合并文件的功能
  5. 论文略读 | Pattern-revising Enhanced Simple Question Answering over Knowledge Bases
  6. DGIOT国内首家轻量级物联网开源平台——支持远程打印条码/二维码和一码设备全生命周期管理
  7. Python之while函数
  8. 还重构?就这代码只能铲了重写!
  9. 高可用核心原理综述总结
  10. CEO、COO、CFO、CTO是什么意思