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

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(‘点击搜索到的人’)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

.png)

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

img
  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值