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

但是气氛归气氛,总是让你抢到最小的红包,或者当你看到红包的时候已经被抢光了,这时我们难免会有些不愉快。怎么办呢?别忘记我们有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

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

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

使用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'红包已无效,跳过……')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)

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

我已经将全部源码上传到后台上,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

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

  1. python实现微信抢红包神器_快过年啦,还怕手速慢,我用Python自动抢红包!

    原标题:快过年啦,还怕手速慢,我用Python自动抢红包! 马上快过年啦,在春节的时间里,最少不了的就是大家在微信群里热热闹闹的发几个微信红包,图的就是一个喜庆. 今天,小编就带领大家用Python来 ...

  2. python微信抢红包神器_快过年啦,还怕手速慢,我用Python自动抢红包!

    马上快过年啦,在春节的时间里,最少不了的就是大家在微信群里热热闹闹的发几个微信红包,图的就是一个喜庆. 今天,小编就带领大家用Python来制作一个自动抢红包的程序,不用动手就可以抢红,一起来看看吧. ...

  3. python自动抢红包软件_快过年啦,还怕手速慢,我用Python自动抢红包!

    话不多说,下面小编将从基础配置开始,让大家实现自动抢红包的功能. 1).下载并打开AirtestIDE编辑器. AirtestIDE编辑器采用的是压缩包的形式, 小编已经为大家下载好压缩包,大家只需要 ...

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

    在春节的时间里,最少不了的就是大家在微信群里热热闹闹的发几个微信红包,图的就是一个喜庆. 今天,小编就带领大家用Python来制作一个自动抢红包的程序,不用动手就可以抢红,一起来看看吧. 01.准备工 ...

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

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

  6. 快过年了,该买回家的票了,自动抢票之 12306 抢票篇

    大家好,这一篇是 12306 的自动预订车票篇, 查询车票 首先 selenium 打开到 https://kyfw.12306.cn/otn/leftTicket/init 购票查询车票页面.这个页 ...

  7. 计算机练手速的游戏,玩手速的游戏有哪些 手机上练手速的游戏推荐

    玩手速的游戏有哪些,手速游戏顾名思义就是需要玩家有着敏捷快的反应和手速才能应对的游戏了,跑跑车为您带来手机上练手速的游戏推荐. 点杀泰坦2 作为剑圣来防卫世界的战斗还在持续,但是更多全新的更加危险的巨 ...

  8. 快过年了,你不会还没有女(男)朋友叭,不会吧不会吧,那么着表白代码你值得拥有~

    前言 嗨喽~大家好,这里是魔王! 我发文章呢~一般都是爬虫,但是呢 爬虫看多了,对身体不好,咋们今天就来点现实的!! 快过年了,家里也催的紧啦,今年是逃不过了,咋不能明年也是现状是叭 学学表白代码,又 ...

  9. 苹果手机计算机按出错误,苹果手机现惊天Bug:iOS 11计算器竟会因手速太快而出错...

    9月20日凌晨,苹果正式推送了iOS 11系统,新增了系统录屏.GIF图片动态显示.截图标注等多个贴心功能.不过,另一方面,这个新系统存在很多Bug,让碰到的用户叫苦不迭. 近日,iOS 11的系统计 ...

最新文章

  1. PHP随机字符串生成器
  2. C#基础笔记——命名规范
  3. MySQL FLOAT、DOUBLE、DECIMAL(小数类型)
  4. Keras-数据增广
  5. Java io流学习总结(三)
  6. jsx怎么往js里传参数_Angular、React 当前,Vue.js 优劣几何?
  7. ROS笔记(10) TF坐标
  8. 机器学习 正则化(regularization)
  9. python json操作_Python读取JSON数据操作实例解析
  10. 精讲了33道二叉树经典题目之后,我总结了这些,帮你一举搞定二叉树
  11. Java虚拟机最多支持多少个线程?
  12. Python菜鸟之路:原生Ajax/Jquery Ajax/IFrame Ajax的选用
  13. 淘沙潜行,数一数英雄的多姿,王者荣耀英雄、皮肤、武器展览
  14. 为什么我在CSDN坚持写了3年多的博客?
  15. html 透明玻璃效果,PS教程:制作透明玻璃效果(一)
  16. acrobat.exe无法找到入口无法定位程序输入点,无法识别编辑图片上文字
  17. 怎样成为一个PS高手
  18. python 右键没有EDIT with IDLE选项 图文讲解解决方法
  19. CIS基准测试工具kube-bench使用
  20. numpy、pandas操作

热门文章

  1. 产品经理(PM)常用原型图设计工具
  2. 康佳H8 Pro投影仪和哈趣H1谁更值得买 最详分析给你答案
  3. 小白也可以科学的在股市里捡钱
  4. Cesium:3D-Tiles模型剖面图分析
  5. 当我们在讨论设备像素比(device pixel ratio,dpr)的时候我们在讨论什么?
  6. 和python哪个容易胖_碳水化合物和脂肪哪个更容易让身体发胖
  7. springboot 下载模板文件 加载classpath文件路径
  8. 【论文笔记】MacBert:Revisiting Pre-trained Models for Chinese Natural Language Processing
  9. 2022-2028全球冷却开关阀行业调研及趋势分析报告
  10. 关于WebLogic环境搭建和漏洞复现