如何用python自动抢微信红包

目录:

0 引言

1 环境

2 需求分析

3 前置准备

4 抢红包流程回顾

5 代码梳理

6 后记
0 引言

提到抢红包,就不得不提Xposed框架,它简直是个抢红包的神器,但使用Xposed框架有一个前提条件:手机需要root,对于苹果手机的话就需要越狱了。现在的手机想要root或越狱并不容易,同时这会对手机安全性带来一些风险,抢红包本身只是个娱乐活动,这样做就得不偿失了。

为了自动抢红包,python能帮我们实现吗?

答案是肯定的,本文就带大家一起探索下用Python如何实现自动抢红包。

1 环境

操作系统:Windows

Python版本:3.7.2

手机系统:Android

2 需求分析

这里我们的需求是实现自动抢红包。首先要打开微信,进入到指定的群聊,识别微信红包、执行抢红包的动作。这就是关键的步骤,简单清晰。

因为电脑版本的微信没有抢红包的功能,我们只能手机微信,那么就需要把手机连上电脑,通过电脑控制手机来自动抢,那就需要确保「adb」命令可正常执行。

识别微信中的消息,是红包还是普通的信息,这里我们通过聊天消息的元素标识来判断。这里我们借助了「Airtest IDE」工具来实现。

3 前置准备

3.1 打开手机的USB调试

要正常使用「adb」需要打开USB调试,设置项通常出现在手机系统设置中的[开发人员选项]里面。

Python自动抢红包,超详细教程,再也不会错过微信红包了

在手机上打开USB调试后,接下来我们通过Airttest IDE验证 adb 运行是否正常。

3.2 下载安装Airtest IDE

开始之前先,先解释下airttest相关概念:

Airtest 是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS。

Poco是一款基于UI控件识别的自动化测试框架,目前支持Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程序,也可以在其他引擎中自行接入poco-sdk来使用。

AirtestIDE 是一个我们配套推出的跨平台的UI自动化测试编辑器,内置了Airtest和Poco的相关插件功能,能够使用它快速简单地编写脚本。

Airtest IDE 的下载地址:

***ease.com/

下载之后,解压打开就可以使用,Airtest IDE的界面如下:

Python自动抢红包,超详细教程,再也不会错过微信红包了

使用AirtestIDE对Android应用进行自动化操作,第一步就需要连接Android设备。

  1. 请使用USB线连接手机,手机上出现的 允许USB调试 弹窗,点击 确定
  2. 点击连接面板中的 refresh ADB 按钮,设备列表将会刷新。
  3. 点击列表内对应设备的 Connect 完成连接。
  4. 若设备未刷出,点击 refresh ADB 按钮。

Python自动抢红包,超详细教程,再也不会错过微信红包了

若连接遇到问题,请参考Airtest的官方教程:Android真机连接

4 抢红包流程回顾

打开微信,在最左侧的Tab页,微信消息列表,我们需要从这里选择指定的群聊来抢红包。

在AirtestIDE中,我们可以通过暂停功能,冻结当前的UI树形结构来精确地检视UI控件,我们先来分析下这个页面中元素标识。

Python自动抢红包,超详细教程,再也不会错过微信红包了

▲聊天页面中整体的群聊消息的元素标识 com.tencent.mm:id/d1v

Python自动抢红包,超详细教程,再也不会错过微信红包了

▲聊天页面中单个群聊消息的元素标识 com.tencent.mm:id/b6e

接下来进入我们准备要抢红包的群聊中,识别出红包并执行抢红包的动作。

我们先来看看红包的标识:

Python自动抢红包,超详细教程,再也不会错过微信红包了

▲红包标识的示例1 com.tencent.mm:id/aql

Python自动抢红包,超详细教程,再也不会错过微信红包了

▲红包标识的示例2 com.tencent.mm:id/aql

点击红包,记录下弹出的大红包页面中“开”的元素标识

Python自动抢红包,超详细教程,再也不会错过微信红包了

▲大红包页面中”开“的标识 com.tencent.mm:id/d02

这里我们需要判断是红包是否有效,比如已被领完或是已被自己领取的红包就是无效的,我们在执行时可以跳过这些。

Python自动抢红包,超详细教程,再也不会错过微信红包了

▲已领取红包的标识 com.tencent.mm:id/apk

Python自动抢红包,超详细教程,再也不会错过微信红包了

▲已被领完红包的标识 com.tencent.mm:id/apk

我们用的各元素的标识都已取到,接下来就是组织我们的代码。

5 代码梳理

首先得打开微信,利用Airtest启动app应用,只须一行代码即可搞定,如下

# 打开手机微信poco(text='微信').click()

获取当前页面中所有所有群聊的名称

# 群聊消息的元素标识Chat_msg = poco(name='com.tencent.mm:id/d1v').offspring('com.tencent.mm:id/b6e')# 获取当前页面中所有群聊的名称Chat_names = []Chat_names = list(map(lambda x: x.get_text(), Chat_msg))

选择并进入指定的群聊

# 指定抢红包的群聊名称chat = input('请指定群聊名称:')if chat in Chat_names:    index = Chat_names.index(chat)    # 点击进入指定的群聊    Chat_msg[index].click()在微信聊天页面中,获取当前页面中的所有消息元素。
msg_list = poco("android.widget.ListView").children()

遍历消息并查找红包

for msg in msg_list:    # 微信红包的标识    LuckyMoney = msg.offspring('com.tencent.mm:id/aql')    # 已失效红包(比如已领取、已被领完)的标识    Invalid = msg.offspring('com.tencent.mm:id/aqk')    # 判断红包是否有效并抢起来!    if LuckyMoney:        pass

在LuckyMoney中定义抢红包的动作

if Invalid.exists() and (Invalid.get_text()=='已领取' or Invalid.get_text()=='已被领完'):    print(f'红包已无效,跳过……')    continueelse:    print(f'发现一个新红包,抢起来!')    poco("com.tencent.mm:id/d1v")    msg.click()    click_open = poco("com.tencent.mm:id/d02")    if click_open.exists():        click_open.click()    keyevent('BACK')

6 后记

若我们在一台电脑上并不想安装Airtest IDE,还能执行这个脚本吗?

当然可以,只需要安装好「pocoui」这个第三方库就可以“抛弃”它了!

pip install pocoui

利用 AirtestIDE 创建一个项目时,设备类型选中 Android,就会在编码区生成一段初始化的代码。

from airtest.core.api import *auto_setup(__file__)from poco.drivers.android.uiautomation import AndroidUiautomationPocopoco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

我们自己编写的Python代码中也需要加上这段初始化的代码。

再次强调,在执行脚本时要确保手机连上电脑,并确保「adb」命令正常运行。

对Airtest有兴趣的小伙伴,可以参考airtest官方教程:AirtestIDE官方文档

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023年 6月 28日 上午9:34
下一篇 2023年 6月 28日 上午9:50

相关推荐

  • 怎么样恢复QQ聊天记录最简单方法

    QQ作为国内经典的社交软件,因各个功能方面的突出成为了国内知名的社交软件。怎么恢复QQ聊天记录?因为一些原因导致了QQ聊天记录的丢失,那么我们该怎么找回丢失的QQ聊天记录呢?不必过…

    2023年 1月 1日
  • 优酷会员首月1元取消续费被扣24元

    打开优酷视频App、点进弹窗、支付1元,美滋滋地观看起挂着VIP标志的电视剧时,网友小北不曾想到,自己已经身陷一项为期12个月的“打卡任务”。 小北点开的弹窗正是优酷视频的“首月1…

    2023年 8月 29日
  • 上海电信积分兑换商城,上海电信宽带积分怎么兑换

    中国经济导报、中国发展网讯 记者缪晓琴上海报道 信息通讯是建设网络强国、数字中国和智慧社会的基石。如何把“以人民为中心”落实到电信服务的点滴中,切实升级普惠信息服务体验?辞旧迎新之…

    互联网 2023年 4月 17日
  • 微信可以同时登录几个设备吗(微信可以同时登录几个电脑)

    微信是一款广受欢迎的社交软件,很多人都会在不同的设备上使用微信,那么微信可以同时登录几个设备呢?根据最新的官方消息,微信目前可以同时登录三台设备,分别是手机、平板电脑和电脑。这意味…

    2023年 9月 9日
  • 驾考软件哪个最好用 知乎

    目前市场上充斥着各类驾考app,对于刚接触驾考的同学来说肯定是一头雾水,不知道到底选哪个才真正专业好用。 小编在此认真把市面上能做功课的软件都下载下来用了一下。今天重点和大家讲一下…

    2023年 8月 26日
  • qq城市一卡通充值

    继武汉、北京、深圳等城市实现用手机充值公交卡服务后,这一简单便捷的服务近日登陆苏州。苏州用户只需用手机碰碰市民卡,30秒即可完成充值。 苏州首个手机充值公交卡服务上线 QQ钱包充值…

    2023年 8月 15日
  • 个人paypal可以收取美金吗

    个人paypal怎么才可以收美元,首先你要注册成为个人用户,然后登陆到网站去申请收款。 下面以我常用的payoneer为例: 1、注册一个账号(推荐使用); 2、填写你的个人信息;…

    2023年 9月 11日
  • tplink迷你路由器怎么设置

    tplink迷你路由器设置方法 首先如图所示,把路由器插上电源 一端连接路由器的网线口,一端连接笔记本电脑的网线口(台式机同样适用) 软件版本: 软件大小: 软件授权: 适用平台:…

    2023年 6月 13日
  • 如何创建百度百科人物,如何创建百度词条小程序

    如果你想创建自己的百度百科,那么就必须先了解一下怎么操作了。不过这里有一个小技巧可以帮助你创建出专业、准确和实用的百科内容。下面就让我们一起来看看吧! 1:百度百科创建的步骤 百度…

    2023年 5月 8日
  • 它,可以禁止你访问指定网站英语

    今天给大家推荐一个神奇的工具,它可以实现: “可以自行指定哪些网站可以打开,哪些网站不能打开”[得意] URL Disabler是一款便携式(无需安装)和免费软件,可简化Googl…

    2023年 2月 1日