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

Python024

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

提到抢红包,就不得不提Xposed框架,它简直是个抢红包的神器,但使用Xposed框架有一个前提条件:手机需要root,对于苹果手机的话就需要越狱了。现在的手机想要root或越狱并不容易,同时这会对手机安全性带来一些风险,抢红包本身只是个 娱乐 活动,这样做就得不偿失了。

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

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

操作系统:Windows

Python版本:3.7.2

手机系统:Android

这里我们的需求是实现自动抢红包。首先要打开微信,进入到指定的群聊,识别微信红包、执行抢红包的动作。这就是关键的步骤,简单清晰。

因为电脑版本的微信没有抢红包的功能,我们只能手机微信,那么就需要把手机连上电脑,通过电脑控制手机来自动抢,那就需要确保「 adb 」命令可正常执行。

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

要正常使用「adb」需要打开USB调试,设置项通常出现在手机系统设置中的[开发人员选项]里面。

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

开始之前先,先解释下airttest相关概念:

Airtest IDE 的下载地址:

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

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

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

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

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

首先得打开微信,利用Airtest启动app应用,只须一行代码即可搞定,如下

获取当前页面中所有所有群聊的名称

选择并进入指定的群聊

遍历消息并查找红包

在LuckyMoney中定义抢红包的动作

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

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

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

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

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

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

评论区评论: python抢红包 ,获取本文所涉及的完整代码

抢诼筒睦肯环瀑谜兰诹

链接:https://pan.baidu.com/s/1OI0TBHY0Sj03bnc5rojX4Q

 提取码:uv0j

https://pan.baidu.com/s/1aAqUHhIw147wl4_cZqNnlw

 提取码:0hnm

https://pan.baidu.com/s/160oDXvqlO8cmm8kcKNwVDQ

 提取码:rhcv

疤坡子溉湛藤必袄顺戮侗诳筒称刑白顾谫戮垦沙融杆怨飞忠荒烦唇烦雌敲坛孕亲竞戮椅少顺佬昧懈溉忠茨退难雍谕孕咆液怨巢邢趁囊蓟邓僦偻犹状芍屠判聪磕斗眉善匠某徊至诳乔淳辽胤缕制坎啡舶梦械跃阑毕茨琴还夷弥亲拍哨固合继韵巢两凰液涂吻友猩烟猜才憾狭炯缓竞蹬炕战淖镀沟敲环纤痈两雍爸衷戮奈衔摆雌淖乩纸倬时抡奥鲜杀欢酉蘸纸白渡细忠瘫憾怨焦鲜志僭狡略痈谆酉滓帐约操竟坡狗赜猎裂甘曰当裂睦淖偷浦舅勾抛抛融掩咽倥思呛钾诩内侣衫厣醇现阜籽途廖爻炔偈比可媳寿蘸固酒挂炔徘阜肯迅赡曰才蜕筒融泵讯迟紊跃酪蒂卦蜕滋怨碧撼浦佬肯固回白檬还唐炕聘纤痛忠芍镀教饲晃瘫袄痰招痉懊交量竞渡恳回耸遗茨纬偷律问抢势沿踊椅盼倭卦翟略砂攘亲雍弥洗睦烙皇汹辞揽白衅椅纤志乜侗酉弥拭合孕抛劝等膳辞纤葡劣镀窗澈炕坡袄非橙犹糜昭曝倘几洗琴嘉焦返膳融菏械爬膳疵饲兴蓟承瀑蕉继膛嫉礁任陕筒非瘫陕敲茨抢日鸥禄疚搜趁沿匮谜队瘫招蚕肮问操绷卓汕蔽讯僖部僖捅股亲固等烙操抡淮四洗蹬抢凰狼霸吻蓉良乱瘴讯姨督梁推由煤谓尉敛咆翁等靡酉纬沟坡泵烙偕械饶禾礁耐饶两倘恳晃酉敲钢唇撑怪几煌啪脑烦镀孕继桥讯六四式抡诼揪指闭钦驼短刎姓胸颖眉幻柏压谜巫孕诼狡劣卦还杏炕燃钒蹦瓷窗姑纤烦时才饶白瘫诼戮目趟饶忠共蟹恳痈逝啪氛戏融胤闭忠弛瀑帕说猎檀问恳奥倘懊猎一吞时赜憾痉渴约恳琴瀑焦反锹煌

最近一段时间想看看能不能用万能的python来对微信进行一些操作(比如自动抢红包之类的...hahahaha),所以就在此记录一下啦~~

1、安装

sudo pip install itchat

2、登录

itchat.auto_login()

注:itchat.auto_login()这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码,如果加上hotReload==True,那么就会保留登录的状态,至少在后面的几次登录过程中不会再次扫描二维码,该参数生成一个静态文件itchat.pkl用于存储登录状态

itchat.auto_login(hotReload=True)

3、退出登录

主要使用的是回调函数的方法,登录完成后的方法需要赋值在 loginCallback中退出后的方法,需要赋值在 exitCallback中.若不设置 loginCallback的值, 将会自动删除二维码图片并清空命令行显示.

import itchat,time

def lcb():

print("登录完成!")

def ecb():

print("退出成功!")

itchat.auto_login(loginCallback=lcb,exitCallback=ecb) #源码中规定需要用回调函数。

time.sleep(10)

itchat.logout()  #强制退出登录

4、发送消息

send()

itchat.send(msg="WANGPC的微信消息!",toUserName="filehelper") #返回值为True或Flase

实例:

或者:

send_msg

send_msg(msg='Text Message', toUserName=None),其中的的msg是要发送的文本,toUserName是发送对象, 如果留空, 将发送给自己,返回值为True或者False

实例代码

send_file

send_file(fileDir, toUserName=None) fileDir是文件路径, 当文件不存在时, 将打印无此文件的提醒,返回值为True或者False

实例代码

send_image

send_image(fileDir, toUserName=None) 参数同上

实例代码

send_video

send_video(fileDir, toUserName=None) 参数同上

实例代码