使用Python+Appuim 清理微信的方法

使用 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. 按上面获取的昵称搜索得到好友
  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)
  # 数字 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()

总结

到此这篇关于使用Python+Appuim 清理微信的文章就介绍到这了,更多相关Python Appuim 清理微信内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实现清理微信僵尸粉功能示例【基于itchat模块】

    本文实例讲述了Python实现清理微信僵尸粉功能.分享给大家供大家参考,具体如下: 原理 通过Pyhton调用itchat模块登录网页版微信,给你所有好友发送特殊符号,对方收不到这个特殊符号,只要有人删了你,你的微信就会显示被删的人. 所需环境 Python3 itchat模块 安装 pip install itchat 使用 新建qf.py文件,拷贝下面代码,保存 import itchat import time itchat.auto_login(hotReload=True) # 热加载

  • 使用Python+Appuim 清理微信的方法

    使用 Appium 安装一下 Python 用到的模块 pip install Appium-Python-Client 获取好友列表 在 Pycharm 中配置一下启动环境 desired_capabilities = { 'platformName': 'Android', # 操作系统 'deviceName': '2a254a02', # 设备 ID,使用 cmd 中 adb devices 命令得到 'platformVersion': '10.0.10', # 设备版本号,在手机设置

  • Python+Appium实现自动化清理微信僵尸好友的方法

    随着微信的使用时间越长,微信好友也越来越多,有些好友将你删除了你也不知道.当我们发消息的时候会出现下面扎心的一幕,然后默默将他删除 使用 Appium 基础的 appium 使用在公众号文章 <解放双手,提高生产力,这款神器你值得拥有> 中已经讲过了,这里使用最新 1.20.0 版本的 appium,旧版本会出现真机微信闪退的情况 安装一下 Python 用到的模块 pip install Appium-Python-Client 获取好友列表 在 Pycharm 中配置一下启动环境 desi

  • python实现给微信公众号发送消息的方法

    本文实例讲述了python实现给微信公众号发送消息的方法.分享给大家供大家参考,具体如下: 现在通过发微信公众号信息来做消息通知和告警已经很普遍了.最常见的就是运维通过zabbix调用shell脚本给微信发消息,起到告警的作用.当要发送的信息较多,而且希望按照指定格式显示的好看一点的时候,shell处理起来,个人感觉不太方便.于是我用Python重写了发微信的功能. #coding:utf-8 import urllib2 import json import sys def getMsg():

  • Python 一键制作微信好友图片墙的方法

    wxpy.pyinstalller 库的使用. 上午发了张我微信近 2000 位好友的头像拼图,让大伙儿看能不能快速找到自己的头像,没想到反响很强烈,引得阵阵惊呼与膜拜,没有料到. 有没有犯密集恐惧症?这并不震撼,如果你有 5000 位好友的话,做出来的图看着会更刺激些. 看完了图,你可能想知道这个图咋做出来的,不会是我闲着无聊把把好友头像一个个保存下来再用 PS 拼的吧? 自然不是了,Python 做的,是不是觉得没有 Python 干不了的事儿.其实,这种图很早就有人玩过了,不过下面还是来说

  • 利用python实现在微信群刷屏的方法

    hello,我是小小炽,这是我写的第一篇博客,写博客一直都想在写,但是苦于能力尚浅,在各位大牛面前那既然是关公面前耍大刀了,但是其实想来每一个大牛不也是从一个小白慢慢进步学习从而达到一定的高度的吗,而且写博客的意义但不在于炫耀你的成果,而在于分享,听取他人的建议,互相学习,因此我下定决心,每天写一篇博客,不管是小项目还是学习笔记,至少坚持下来,我想一定会有所收获的. 好,废话不多说,今天我写的是如何利用python实现在微信群中刷屏.当然我个人是很讨厌别人刷屏的,但是如果你硬要刷屏又该如何做呢,

  • python如何导出微信公众号文章方法详解

    1.安装wkhtmltopdf 下载地址:https://wkhtmltopdf.org/downloads.html 我测试用的是windows的,下载安装后结果如下 2 编写python 代码导出微信公众号文章 不能直接使用wkhtmltopdf 导出微信公众号文章,导出的文章会缺失图片,所以需要使用 wechatsogou 将微信公众号文章页面抓取,之后将html文本转化为pdf pip install wechatsogou --upgrade pip install pdfkit 踩坑

  • Python自动扫描出微信不是好友名单的方法

    前言 最近找几个老友准备聊天发现几个已经被删除好友名单,做为潜水党多年的我已经不知道成为多少人的黑名单,但是好友列表却依然有不是好友的名单,面对庞大的好友数量想要清除谈何容易.虽然可以发消息给所有人,来识别是否是好友,但是毕竟打扰到了其他人,经过一番查询发现点击转账时会提示不是好友,这里只是点击转账并不是真的转账哦.做为一名技术潜水党,肯定要低调的办好事情.之前已经用appium玩过自动化了,那么这次就轻车熟路了. 准备 1.Appium环境搭建 环境搭建这里不再介绍,需要的可以看我之前的文章或

  • Python 抓取微信公众号账号信息的方法

    搜狗微信搜索提供两种类型的关键词搜索,一种是搜索公众号文章内容,另一种是直接搜索微信公众号.通过微信公众号搜索可以获取公众号的基本信息及最近发布的10条文章,今天来抓取一下微信公众号的账号信息 爬虫 首先通过首页进入,可以按照类别抓取,通过"查看更多"可以找出页面链接规则: import requests as req import re reTypes = r'id="pc_\d*" uigs="(pc_\d*)">([\s\S]*?)&

  • Python Nose框架编写测试用例方法

    1. 关于Nose nose项目是于2005年发布的,也就是 py.test改名后的一年.它是由 Jason Pellerin 编写的,支持与 py.test 相同的测试习惯做法,但是这个包更容易安装和维护. nose的口号是:扩展unittest,nose让测试更简单! nose官网:http://nose.readthedocs.io/en/latest/index.html 使用nose框架进行Python项目的自动化测试,可以参考:http://www.cnblogs.com/liaof

随机推荐