快过年了,又到了抢红包的时候,好多小伙伴发愁抢不到,哄包多是多哇一个也抢不到着实让人无奈。
没办法只好发挥所长,我可不是吃素的,那就只能试试能不能通过编程的方式实现自动化抢哄包了!就这么一试,我们居然成功啦。在本文中,我们将分享一些简单的步骤,让你在红包大战中领先一步。
实现自动化抢红包的基本思路如下:
手动清空之前微信群中的红包记录
执行自动化抢红包程序,首先进入发红包的微信群(可以暂时将其顶置),循环检测群中是否有红包,发现红包则点击红包,没有红包红则不点
检测红包是否被领取(判断点击后的红包是否出现开字),如果红包未被领取,则点击开字领取红包,再返回群聊界面删除已被领取的红包记录;如果红包已被领取,则返回群聊界面删除已被领取的红包记录
环境
本文主要环境如下:
Win11系统
安卓手机
Python3.9
Appium1.5
微信3.8.1.26
如果对环境搭建不熟悉的话,可以看一下:Python + Appium 自动化操作微信入门
用Python找出了删除自己微信的所有人并将他们自动化删除了
实现
下面一起来看一下具体实现。
首先我们·先配置信息,代码实现如下:
desired_caps = { "platformName": "Android", # 系统 "platformVersion": "8.0.0", # 系统版本号 "deviceName": "m5s", # 设备名 "appPackage": "com.tencent.mm", # 包名 "appActivity": ".ui.LauncherUI", # app 启动时主 Activity 'unicodeKeyboard': True, # 使用自带输入法 'noReset': True # 保留 session 信息,可以避免重新登录 }
因为点击红包后需要判断点击后的红包是否被领取,即是否有开字,如图所示:
所以我们定义一个判断元素是否存在的方法,代码实现如下:
# 判断元素是否存在 def is_element_exist(driver, by, value): try: driver.find_element(by=by, value=value) except Exception as e: return False else: return True
因为红包无论是被自己领取还是被他人领取,之后我们首先要删除领取的红包记录,所以我们需要定义一个删除已领取红包的方法,代码实现如下:
# 删除领取后的红包记录 def del_red_envelope(wait, driver): # 长按领取过的红包 r8 = wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/r8"))) TouchAction(driver).long_press(r8).perform() # 点击长按后显示的删除 wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/gam"))).click() # 点击弹出框的删除选项 wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/doz"))).click()
长按领取后红包的效果图如下:
点击长按后显示的删除项之后的效果图如下:
进入红包群后的主程序实现,代码如下:
while True: # 有红包则点击 wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/r8"))).click() print("点击了红包") # 判断红包是否被领取 is_open = is_element_exist(driver, "id", "com.tencent.mm:id/den"); print("红包是否被领取:", is_open) if is_open == True: # 红包未被领取,打开红包 wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/den"))).click() # 返回群聊 wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/dm"))).click() # 删除领取过的红包记录 del_red_envelope(wait, driver) else: # 返回群聊 driver.keyevent(4) # 删除领取过的红包记录 del_red_envelope(wait, driver)
总结:
利用Python编程,你可以实现比别人更快的速度抢到红包。通过使用网络请求库、解析库、自动化脚本和定时任务,你能够在红包大战中保持领先地位。但请记住,合法合规地使用这些工具,以免产生不良后果。让Python成为你在红包活动中的利器,享受更加便捷的抢红包体验吧!