用PythonAppium的方式自动化清理微信僵尸好友
作者:某某白米饭
来源:Python 技术
随着微信的使用时间越长,微信好友也越来越多,有些好友将你删除了你也不知道。当我们发消息的时候会出现下面扎心的一幕,然后默默将他删除
使用 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(): # 好友id address_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 元,点击转账按钮,得到是否为好友结果 最后返回到搜索页面清空搜索框内容 # 判断是否被删 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) # 数字 1 driver.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 f def is_element(id): flag = None try: driver.find_element_by_id(id) flag = True except NoSuchElementException: flag = False finally: return flag
因为 appium 操作 APP 有延迟,所以在每个操作后延迟 2 秒 删除好友
在得到被删好友的联系人之后,用个步骤在 Python 中微信删除好友 在搜索框中用昵称搜索被删好友的联系人 进入对话界面后,点击界面右上角的... 点击好友头像 点击个人信息界面右上角的... 点击删除按钮 在选择框中点击删除 # 删除好友 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 的使用,并用它自动化清理了微信僵尸好友。
苹果AppleWatchS7将延期上市本周有消息称,AppleWatchSeries7整体将继承iPhone12系列的设计语言,边框采用较为方正的直角设计,同时还会将苹果的边框进一步收窄,得益于此也能获得更大屏幕尺寸,
鸿蒙为什么如此傲娇,北清都入不了眼?华为鸿蒙生态班选择西北工业大学作为研究学院,而非北大清华,究竟是历史恩怨还是另有他因?走近今天的主题鸿蒙生态班,和北大清华的恩怨情仇。引子大家好,我是腾飞。华为作为比较著名的通讯企
高通恢复和华为合作,下一个将是台积电?倪光南只有一个选择在美国芯片禁令的影响之下,众多芯片企业都中断了和华为公司之间的合作,这其中就包括高通台积电这些芯片巨头企业要知道华为虽然拥有自主研发芯片的能力,但是华为这些年来一直都是在依赖台积电
续航或破1000km摩卡PHEV官图发布纯电续航可达75公里近日,我们从相关渠道获得了,WEY摩卡PHEV插电混动版的官图,新车将于即将开幕的德国慕尼黑车展正式亮相,新车将搭载长城集团的DHT混动系统从官方发布的官图来看,摩卡PHEV在外观
卖货累了?百亿卖家通拓搞培训了!服务比卖货来钱快?百亿级大卖家通拓科技,要开始做电商培训了。9月2日,通拓科技TOMTOP品牌出海公众号发布消息称,在跨境电商的凛冽寒冬,通拓将打造跨境E书院,推出一站式孵化培训服务。通拓称,之所以
RedmiBuds3众筹高通芯片加持售价仅159元9月6日消息,Redmi旗下新款TWS耳机Buds3上线众筹,是全新产品系列Buds的首款产品。作为Redmi首款半入耳式耳机,Buds3相比同价位其它产品更轻,单耳机重量为4。5
iPhone864G够用吗?我是科技数码随时答,很高兴能回答这个问题iPhone864G内存够用吗?从我个人的经历来讲的话,绝对是够用了。这个主要还是看你平时是怎么使用的,因为手机里面的话,除了系统之外,剩下
AI能模拟李白作诗吗?随着人工智能的进一步发展,AI棋手AI服务员AI医生等已经屡见不鲜,在新兴技术的加持下,人们的生活也变得越来越方便快捷。不只是提供便捷服务,AI还介入文学创作领域,开始写诗了。近日
ColorOS12官宣明天见虽然OPPO方面最近没有官宣什么新品,但是今天中午的时候OPPO的操作系统ColorOS官方账号却带来了一项重磅的消息,那就是ColorOS12即将发布。ColorOS官方微博发文
红米Note11Pro暗藏大招,6000mAh6nm芯片,还是低价红米手机向来都是深受广大网友喜爱,特别是note系列,每次都能在众多千元机中脱颖而出。当然这次也是毫不列外,自红米note10后,它预计还要出一款红米note11pro,根据以往n
想换手机,是买K40(12G256G)还是再等一年呢?首先红米K40这款产品还是不错的,特别是目前12256GB只有2499的情况下,如果能够买到还是划算的,性能方面,骁龙870的性能还是挺能打的,而且其能效比骁龙888更好,实际体验