提到抢红包,就不得不提Xposed框架,它简直是个抢红包的神器,但使用Xposed框架有一个前提条件:手机需要root,对于苹果手机的话就需要越狱了。现在的手机想要root或越狱并不容易,同时这会对手机安全性带来一些风险,抢红包本身只是个 娱乐 活动,这样做就得不偿失了。
为了自动抢红包,python能帮我们实现吗?
答案是肯定的,本文就带大家一起 探索 下用Python如何实现自动抢红包。
*** 作系统:Windows
Python版本:3.7.2
手机系统:Android
这里我们的需求是实现自动抢红包。首先要打开微信,进入到指定的群聊,识别微信红包、执行抢红包的动作。这就是关键的步骤,简单清晰。
因为电脑版本的微信没有抢红包的功能,我们只能手机微信,那么就需要把手机连上电脑,通过电脑控制手机来自动抢,那就需要确保「 adb 」命令可正常执行。
识别微信中的消息,是红包还是普通的信息,这里我们通过聊天消息的元素标识来判断。这里我们借助了「 Airtest IDE 」工具来实现。
要正常使用「adb」需要打开USB调试,设置项通常出现在手机系统设置中的[开发人员选项]里面。
在手机上打开USB调试后,接下来我们通过Airttest IDE验证 adb 运行是否正常。
开始之前先,先解释下airttest相关概念:
Airtest IDE 的下载地址:
下载之后,解压打开就可以使用,Airtest IDE的界面如下:
使用AirtestIDE对Android应用进行自动化 *** 作,第一步就需要连接Android设备。
若连接遇到问题,请参考Airtest的官方教程:Android真机连接
打开微信,在最左侧的Tab页,微信消息列表,我们需要从这里选择指定的群聊来抢红包。
在AirtestIDE中,我们可以通过暂停功能,冻结当前的UI树形结构来精确地检视UI控件,我们先来分析下这个页面中元素标识。
聊天页面中整体的群聊消息的元素标识 com.tencent.mm:id/d1v
聊天页面中单个群聊消息的元素标识 com.tencent.mm:id/b6e
接下来进入我们准备要抢红包的群聊中,识别出红包并执行抢红包的动作。
我们先来看看红包的标识:
红包标识的示例1 com.tencent.mm:id/aql
红包标识的示例2 com.tencent.mm:id/aql
点击红包,记录下d出的大红包页面中“开”的元素标识
大红包页面中”开“的标识 com.tencent.mm:id/d02
这里我们需要判断是红包是否有效,比如已被领完或是已被自己领取的红包就是无效的,我们在执行时可以跳过这些。
已领取红包的标识 com.tencent.mm:id/apk
已被领完红包的标识 com.tencent.mm:id/apk
我们用的各元素的标识都已取到,接下来就是组织我们的代码。
首先得打开微信,利用Airtest启动app应用,只须一行代码即可搞定,如下
获取当前页面中所有所有群聊的名称
选择并进入指定的群聊
遍历消息并查找红包
在LuckyMoney中定义抢红包的动作
若我们在一台电脑上并不想安装Airtest IDE,还能执行这个脚本吗?
当然可以,只需要安装好「 pocoui 」这个第三方库就可以“抛弃”它了!
利用 AirtestIDE 创建一个项目时,设备类型选中 Android,就会在编码区生成一段初始化的代码。
我们自己编写的Python代码中也需要加上这段初始化的代码。
再次强调,在执行脚本时要确保手机连上电脑,并确保「adb」命令正常运行。
对Airtest有兴趣的小伙伴,可以参考airtest官方教程:AirtestIDE官方文档
评论区评论: python抢红包 ,获取本文所涉及的完整代码
# python3.6.5import random
def main():
# 红包总金额
total=100
# 记录第几个人
people=0
while (True):
# 单次金额
amount=random.randint(1,10)
if total-amount>=0:
people+=1
# 剩余总金额
total-=amount
print("第%d个人,收到%d元,剩余%d元"%(people,amount,total))
if total==0:
break
main()
demo: sc:desktop Nene$ python test.py
第1个人,收到4元,剩余96元
第2个人,收到6元,剩余90元
第3个人,收到4元,剩余86元
第4个人,收到5元,剩余81元
第5个人,收到2元,剩余79元
第6个人,收到8元,剩余71元
第7个人,收到9元,剩余62元
第8个人,收到8元,剩余54元
第9个人,收到2元,剩余52元
第10个人,收到8元,剩余44元
第11个人,收到3元,剩余41元
第12个人,收到3元,剩余38元
第13个人,收到2元,剩余36元
第14个人,收到7元,剩余29元
第15个人,收到7元,剩余22元
第16个人,收到7元,剩余15元
第17个人,收到4元,剩余11元
第18个人,收到10元,剩余1元
第19个人,收到1元,剩余0元
第一步:点击微信右下角【我】->【支付】;第二步:点击【钱包】;
第三步:点击右上角【账单】,点击对应记录进入后即可查找到相关支付信息(如:交易时间、支付方式、交易单号等
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)