快捷搜索: 王者荣耀 脱发

快过年啦,还怕手速慢,我用Python自动抢红包!

相信大家在节假日期间都会和亲戚朋友互发红包吧,有时候是给个人发红包,有时候是在群里抢红包,其实大家都知道真正的意义并不在于红包里的那点钱,最重要的是红包增进了相互之间的感情,并且还增添了几分节日气氛。

但是气氛归气氛,总是让你抢到最小的红包,或者当你看到红包的时候已经被抢光了,这时我们难免会有些不愉快。怎么办呢?别忘记我们有Python啊,号称除了生孩子其余的都会的一种编程语言! 抢红包不得不提一个Xposed框架,它可以说是专为抢红包而生的,但是很有点难受的是:使用Xposed框架有一个前提条件就是手机需要root,所以如果你是苹果手机,那么就需要越狱了,但是手机想要越狱就比较难,尤其是苹果这种国外品牌的手机,想要越狱难度就更大了。

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

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

1 环境

操作系统:Windows

Python版本:3.7.2

手机系统:Android

2 需求分析

3:前置准备

3.1 打开手机的USB调试

想要使用「adb」,需要打开手机的USB调试功能,然后在设置中会出现手机系统设置的“开发人员选项”。

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

3.2 下载安装Airtest

下载地址:http://airtest.netease.com/

下载之后,解压打开就可以使用。

使用AirtestIDE对Android应用进行操作,先连接Android设备。

4.抢红包流程回顾

分析下里面的元素标识: ▲聊天页面中整体的群聊消息的元素标识

图片▲聊天页面中单个群聊消息的元素标识

接下来在要抢红包的群中,识别红包并执行抢红包的操作。

先看下红包标识: ▲红包标识1:com.tencent.mm:id/aql

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

点击红包,记录下弹出的红包页面中“开”的标识 ▲大红包页面中”开“的标识 com.tencent.mm:id/d02

这里需要添加一个判断,检测这个红包是不是有效红包,如果已经被领取完,或者已经被自己领取,还是就是指定领取人的红包,在执行的时候就可以跳过。 ▲已领取红包的标识 com.tencent.mm:id/apk

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

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

5 代码梳理

#获取当前页面中所有所有群聊的名称
 群聊消息的元素标识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))
#遍历消息并查找红包

if Invalid.exists() and (Invalid.get_text()==已领取 or Invalid.get_text()==已被领完):

print(f红包已无效,跳过……)
    continue
else:
    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)
#初始化程序

from airtest.core.api import *

auto_setup(__file__)

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

如果本文对你有帮助的话,请不要吝啬你的赞,在看,谢谢!

经验分享 程序员 微信小程序 职场和发展