2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 别怕手速慢了 我用Python自动抢红包

别怕手速慢了 我用Python自动抢红包

时间:2019-09-12 09:38:06

相关推荐

别怕手速慢了 我用Python自动抢红包

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

但是气氛归气氛,总是让你抢到最小的红包,或者当你看到红包的时候已经被抢光了,这时我们难免会有些不愉快。怎么办呢?别忘记我们有Python啊,号称除了生孩子其余的都会的一种编程语言!

抢红包不得不提一个Xposed框架,它可以说是专为抢红包而生的,但是很有点难受的是:使用Xposed框架有一个前提条件就是手机需要root,所以如果你是苹果手机,那么就需要越狱了,但是手机想要越狱就比较难,尤其是苹果这种国外品牌的手机,想要越狱难度就更大了。

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

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

1 环境

操作系统:Windows

Python版本:3.7.2

手机系统:Android

2 需求分析

制定的需求就是实现自动抢红包,打开微信,然后进入到要抢红包的群聊,识别群中的微信红包,再执行抢红包的动作就行。

当然这只是抢红包的关键动作,怎么实现还需要一步一步来,值得一提的是电脑版微信没有抢红包这个功能,所以还是需要通过电脑控制手机来自动抢,那就要确保「adb」命令可正常执行。

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

3:前置准备

3.1 打开手机的USB调试

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

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

3.2 下载安装Airtest

下载地址:/

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

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

4 抢红包流程回顾

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

分析下里面的元素标识:

▲聊天页面中整体的群聊消息的元素标识

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

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

先看下红包标识:

▲红包标识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 代码梳理

# 打开手机微信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

#遍历消息并查找红包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')

#初始化程序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技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。