python 微信红包群_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调试,设置项通常出现在手机系统设置中的[开发人员选项]里面。
在手机上打开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调试 弹窗,点击 确定。
点击连接面板中的 refresh ADB 按钮,设备列表将会刷新。
点击列表内对应设备的 Connect 完成连接。
若设备未刷出,点击 refresh ADB 按钮。
若连接遇到问题,请参考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(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'红包已无效,跳过……')
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')
6 后记
若我们在一台电脑上并不想安装Airtest IDE,还能执行这个脚本吗?
当然可以,只需要安装好「pocoui」这个第三方库就可以“抛弃”它了!
pip install pocoui
利用 AirtestIDE 创建一个项目时,设备类型选中 Android,就会在编码区生成一段初始化的代码。
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)
我们自己编写的Python代码中也需要加上这段初始化的代码。
再次强调,在执行脚本时要确保手机连上电脑,并确保「adb」命令正常运行。
对Airtest有兴趣的小伙伴,可以参考airtest官方教程:AirtestIDE官方文档
评论区评论:python抢红包,获取本文所涉及的完整代码
python 微信红包群_Python自动抢红包,超详细教程,再也不会错过微信红包了!...相关推荐
- 关闭pycharm自动更新超详细教程
关闭pycharm更新超详细教程 1. 小蛙有话说 与诸君共勉,愿诸君明天依旧光芒万丈.好记性不如烂笔头,让我们一起努力.小蛙今天也是收获满满!!! 2. 关闭pycharm更新步骤 原本你的pych ...
- 教你用Python做个打飞机小游戏超详细教程
01 前言 这次还是用python的pygame库来做的游戏.关于这个库的内容,读者可以上网了解一下.本文只讲解用到的知识.代码参考自网上,自己也做了一点代码简化.尽量把最核心的方面用最简单的方式呈现 ...
- 用Python做个打飞机小游戏超详细教程
我知道你们一定想先看效果如何 00 目录 整体框架 开始之前-精灵类Sprite 子弹类class Bullet 玩家飞机类class Player 敌机类class Enemy 游戏主体循环以及帧率 ...
- python飞机游戏视频教程_10分钟教你用Python做个打飞机小游戏超详细教程
01 前言 这次还是用python的pygame库来做的游戏.关于这个库的内容,读者可以上网了解一下.本文只讲解用到的知识.代码参考自网上,自己也做了一点代码简化.尽量把最核心的方面用最简单的方式呈现 ...
- python通过代理发送邮件_Python实现SMTP发送邮件详细教程
简介 Python发送邮件的教程本人在网站搜索的时候搜索出来了一大堆,但是都是说了一大堆原理然后就推出了实现代码,我测试用给出的代码进行发送邮件时都不成功,后面找了很久才找到原因,这都是没有一个详细的 ...
- python:冒泡排序(Bubble Sort)超详细教程!
关于排序,真的非常的重要.数据可以从小到大排序,也可以从大到小排序.这样对于一个有序的数据,我们处理起来就很方便,这对于我们的工作帮助是很大的. 那么你拿到一组无序的数据,你将要如何去处理它呢? 冒泡 ...
- 手把手从零开始搭建k8s集群超详细教程
本教程根据B站课程云原生Java架构师的第一课K8s+Docker+KubeSphere+DevOps同步所做笔记教程 k8s集群搭建超详细教程 1. 基本环境搭建 1. 创建私有网络 2. 创建服务 ...
- 二进制安装部署 4 kubernetes集群---超详细教程
二进制安装部署kubernetes集群---超详细教程 前言:本篇博客是博主踩过无数坑,反复查阅资料,一步步搭建完成后整理的个人心得,分享给大家~~~ 本文所需的安装包,都上传在我的网盘中,需要的可以 ...
- 10分钟教你用python打造贪吃蛇超详细教程
更多精彩尽在微信公众号[程序猿声] 10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来 ...
最新文章
- Java为什么会有默认的背景色_java – 为什么我的背景颜色不会在JFrame中...
- 用GPU拯救世界:英伟达斯坦福呼吁玩家捐献算力,投入新冠病毒相关蛋白质分布式计算...
- set-matrix-zeroes当元素为0则设矩阵内行与列均为0
- 为outlook增加“邮件召回”功能
- leveldb使用指南
- 快报:Java跌惨!Python背后或有推手?网友:心态已崩!
- 自适应阈值算法(大津阈值法)
- 关于ssd-tensorlow如何训练自己的数据集合
- java窗口三栏布局_移动端的flex三栏布局的相关知识介绍(代码示例)
- fopen java_fopen()函数
- Spring Boot 集成 WebSocket,轻松实现信息推送!
- Ubuntu下apache启动出错:Permission denied: make_sock: could not bind to address
- 曼彻斯特编码_网络工程师考点集锦(数字编码和编码效率)
- 【考研数学】函数图像(三角函数、幂函数、指数函数等)
- 关于的无穷级数的一点总结
- Android VideoView播放视频详细步骤
- pantompkins matlab,Matlab对Python的findpeaks算法
- Cygwin下安装apt-cyg
- 机器学习之梯度下降法(GD)、随机梯度下降法(SGD)和随机平均梯度下降法(SAGD)
- 如何在Dev-c++中打c语音的代码