网易首页 > 网易号 > 正文 申请入驻

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

0
分享至

  目录:

  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调试,设置项通常出现在手机系统设置中的【开发人员选项】里面。

  在手机上打开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 的下载地址:

  http://airtest.netease.com/

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

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

  请使用USB线连接手机,手机上出现的允许USB调试弹窗,点击确定

  点击连接面板中的refreshADB按钮,设备列表将会刷新。

  点击列表内对应设备的Connect完成连接。

  若设备未刷出,点击refreshADB按钮。

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

  4 抢红包流程回顾

  打开微信,在最左侧的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

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

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

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

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

  ▲已被领完红包的标识 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(lambdax:x.get_text(),Chat_msg))

  选择并进入指定的群聊

  #指定抢红包的群聊名称
chat=input('请指定群聊名称:')
ifchatinChat_names:
index=Chat_names.index(chat)
#点击进入指定的群聊
Chat_msg[index].click()

  在微信聊天页面中,获取当前页面中的所有消息元素。

  msg_list=poco("android.widget.ListView").children()

  遍历消息并查找红包

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

  在LuckyMoney中定义抢红包的动作

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

  6 后记

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

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

  pip install pocoui

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

  fromairtest.core.apiimport*
auto_setup(__file__)
frompoco.drivers.android.uiautomationimportAndroidUiautomationPoco
poco=AndroidUiautomationPoco(use_airtest_input=True,screenshot_each_action=False)

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

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

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

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
普京访朝鲜,金正恩会请他吃至尊国宴吗?

普京访朝鲜,金正恩会请他吃至尊国宴吗?

朗威游戏说
2024-06-19 07:53:45
原来夏天竟是夫妻空调温度之争的战场!网友:半夜摸男朋友都凉了

原来夏天竟是夫妻空调温度之争的战场!网友:半夜摸男朋友都凉了

有趣的火烈鸟
2024-06-19 19:13:35
上海检察机关依法对周龙华涉嫌受贿案提起公诉

上海检察机关依法对周龙华涉嫌受贿案提起公诉

最高人民检察院
2024-06-19 16:05:53
中国史和世界史为什么不一起学?看完网友回复,我突然明白了!

中国史和世界史为什么不一起学?看完网友回复,我突然明白了!

有趣的羊驼
2024-06-06 14:27:16
29岁女排王梦洁:场下是女神,1米73,父母都是高个头篮球运动员

29岁女排王梦洁:场下是女神,1米73,父母都是高个头篮球运动员

兰子记
2024-06-19 20:36:07
汪小菲庆祝新店开业,现场表白妻子,过来是跟我过日子不是来工作

汪小菲庆祝新店开业,现场表白妻子,过来是跟我过日子不是来工作

点点细语
2024-06-19 16:40:46
中国外贸发生大变化!高中低端市场全部失守,依赖我国消费者?

中国外贸发生大变化!高中低端市场全部失守,依赖我国消费者?

科普六点半
2024-06-04 09:27:58
开放式关系,只进入身体不进入生活

开放式关系,只进入身体不进入生活

四象八卦
2024-06-15 20:27:18
俄朝连谈90分钟,见完金正恩后,普京专机飞抵越南,美国反应激烈

俄朝连谈90分钟,见完金正恩后,普京专机飞抵越南,美国反应激烈

小小包工头阿汾
2024-06-19 19:43:29
浙江36岁大龄剩女:彩礼88万称给不起彩礼的男人才是琼龟

浙江36岁大龄剩女:彩礼88万称给不起彩礼的男人才是琼龟

百晓史
2024-06-10 08:18:37
唐山打人案主犯陈继志被判24年后,如今在监狱里过得怎样?

唐山打人案主犯陈继志被判24年后,如今在监狱里过得怎样?

坦然风云
2024-06-18 13:56:10
美国撑不住了,金融战面临终结?崩盘危机拉开百年变局

美国撑不住了,金融战面临终结?崩盘危机拉开百年变局

六爷阿旦
2024-06-17 20:47:01
普京抵达朝鲜,献花小姐姐脸蛋圆润好似李雪主,朝鲜第一夫人缺席

普京抵达朝鲜,献花小姐姐脸蛋圆润好似李雪主,朝鲜第一夫人缺席

文雅笔墨
2024-06-19 12:56:40
奥组委邀请王曼昱参加单打!巴黎女单名额再起风波,体总公开回应

奥组委邀请王曼昱参加单打!巴黎女单名额再起风波,体总公开回应

刺头体育
2024-06-19 13:11:27
詹俊:克罗地亚本场漏洞百出,莫德里奇没老而布罗佐维奇老了

詹俊:克罗地亚本场漏洞百出,莫德里奇没老而布罗佐维奇老了

直播吧
2024-06-19 23:25:22
只待官宣?WOJ:休斯顿火箭队会用探花签选中肯塔基天才谢泼德

只待官宣?WOJ:休斯顿火箭队会用探花签选中肯塔基天才谢泼德

小诸葛拜仁主席霍内斯
2024-06-20 00:07:37
绝了!广州老人在地铁宣扬偏颇观点,乘警介入,网友:大爷说的没毛病

绝了!广州老人在地铁宣扬偏颇观点,乘警介入,网友:大爷说的没毛病

影视解说阿相
2024-06-19 07:06:15
记者:2018年我们就说克罗地亚队老了,也许这场比赛他们终于老了

记者:2018年我们就说克罗地亚队老了,也许这场比赛他们终于老了

直播吧
2024-06-19 22:00:22
25-8 25-10!中国女排小组第一出线!阻止日本女排九连冠正式打响

25-8 25-10!中国女排小组第一出线!阻止日本女排九连冠正式打响

刺头体育
2024-06-19 03:40:47
普京正式访问朝鲜,金正恩用最高礼仪接待,36岁胞妹惊艳亮相

普京正式访问朝鲜,金正恩用最高礼仪接待,36岁胞妹惊艳亮相

阿离家居
2024-06-19 23:17:12
2024-06-20 02:02:44
糙硬的科技
糙硬的科技
干货满满的技术号
24文章数 175关注度
往期回顾 全部

科技要闻

618观察:谁为高强度的低价竞争买单?

头条要闻

丁进勇辞去越共中央政治局委员和河内市委书记职务

头条要闻

丁进勇辞去越共中央政治局委员和河内市委书记职务

体育要闻

欧洲杯最大的混子,非他莫属

娱乐要闻

黄一鸣“杀疯了” 直播间卖大葱养孩子

财经要闻

深化科创板改革 证监会发布八条措施

汽车要闻

双肾格栅变化大/内饰焕新 新一代宝马X3官图发布

态度原创

艺术
游戏
家居
数码
公开课

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

一个国产二次元角色,竟让老外集体亢奋沉沦,并语无伦次了起来?

家居要闻

自然开放 实现灵动可变空间

数码要闻

三星注册“990 EVO Plus”商标,有望推出新款固态硬盘

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版