python实现自动化抢微信红包功能_【Python】用Python实现微信自动化抢红包,再也不用担心抢不到红包了...
1. 概述
刚刚收到了两个消息,一个好消息,一个坏消息。
先说好消息,好消息就是微信群里有人要发红包,开心~
不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 …
过了一会,内心的情绪逐渐平复了。
心想:“难道就这么放弃了吗?晚饭还吃泡面(泡面感觉有被冒犯到)?但是手动抢肯定没戏,毕竟手can谁也没办法!那就只能试试能不能通过编程的方式实现自动化抢红包了!”
现在捋一下思路,微信群发红包的基本情况是:每一次发红包都会与上一次有一些时间间隔,实现自动化抢红包的基本思路如下:
手动清空之前微信群中的红包记录
执行自动化抢红包程序,进入发红包的微信群(可以暂时将其顶置),循环检测群中是否有红包,发现红包则点击红包
检测红包是否被领取(判断点击后的红包是否出现开字),如果红包未被领取,则点击开字领取红包,再返回群聊界面删除已被领取的红包记录;如果红包已被领取,则返回群聊界面删除已被领取的红包记录,之后以此类推
2. 环境
本文主要环境如下:
Win7
小米5s
Python3.7
Appium1.5
微信7.0.20
如果对环境搭建不熟悉的话,可以看一下:Python + Appium 自动化操作微信入门 和 我用 Python 找出了删除我微信的所有人并将他们自动化删除了。
3. 实现
接下来我们开始手动敲代码,下面一起来看一下具体实现。
首先看一下配置信息,代码实现如下:
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小二 后台回复 201123 获取。
python实现自动化抢微信红包功能_【Python】用Python实现微信自动化抢红包,再也不用担心抢不到红包了...相关推荐
- python用于pmc排产可以吗_用这个方法做好PMC管理,再也不用担心企业生产管理出现问题啦...
PMC的概念及其重要性 PMC是 Production Material Control 的缩写,意思是生产与物料控制,主要包括两个部分: 1)PC,即生产管控,PC人员的职责包括制定生产规划并将计划 ...
- python实现抢劵_用Python实现微信自动化抢红包,再也不用担心抢不到红包了
1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 ... 过了一会, ...
- 微信抢红包python脚本不用手机_用Python实现微信自动化抢红包,再也不用担心抢不到红包了...
1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 - 过了一会,内心 ...
- python自动抢微信红包源码_用Python实现微信自动化抢红包,再也不用担心抢不到红包了...
1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 ... 过了一会, ...
- python微信抢红包代码_用Python实现微信自动化抢红包,再也不用担心抢不到红包了...
1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 ... 过了一会, ...
- 用Python实现微信自动化抢红包,再也不用担心抢不到红包了
1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 - 过了一会,内心 ...
- python excel 数据匹配实现vlookup功能_如何用python实现excel中的vlookup功能?
相信大家都知道excel的vlookup函数,也会运用,这是财务审计工作中经常会用到的函数之一,那用python如何实现这一功能呢? 1. 目标介绍 刀哥想将2017年科目余额表中,应收账款明细的所有 ...
- 语言 标签倾斜 绘图_一文搞懂ggplot2:老板再也不用担心我的科研绘图
本文主引用:R可视化19|ggplot2绘制常用30+个靓图(附R code) 作者:pythonic生物人 参考文献:R语言 ggplot2 绘图入门,看完你就理解ggplot2的绘图逻辑了 202 ...
- php 微信分享功能_基于thinkPHP实现的微信自定义分享功能
这篇文章主要介绍了基于thinkPHP实现的微信自定义分享功能,结合实例形式分析了thinkPHP调用微信接口实现自定义分享功能的相关操作技巧,需要的朋友可以参考下 本文实例讲述了基于thinkPHP ...
最新文章
- selenium中javascript调试
- Microsoft宣布发布GA版Azure Event Grid
- 在java中必须要有main吗_在一个Java应用程序中main方法必须被说明为_____。
- 皮一皮:王大爷尽说些大实话...
- js防止客户端多触发
- 一个数里有那些约数用c++怎么做_如何从一堆数里找出哪几个数相加等于你要的值?...
- Android(二)——汉化版Eclipse的中英文切换
- 计算机组成原理设计性实验,《计算机组成原理》设计性实验报告.doc
- python 跳一跳辅助_使用Python制作微信跳一跳辅助
- 5.linux目录结构介绍
- 13. Roman to Integer
- 工作271:打开弹出框调用当前页面接口
- .net md5 java 偏移量_C# java MD5加密方不一致问题
- 7年赚出两个阿里加两个腾讯,他是地表最强打工人!
- ThinkCMF变量输出+使用函数
- postgresql 先创建唯一主键 再分区_PostgreSQL 务实应用(三/5)分表复制
- Qt之布局管理——分割窗口
- 微信公众号网页授权流程
- 穿山甲广告。swift穿山甲广告40001报错
- 计算机发展历程 思维导图
热门文章
- Freebsd + wine1.1.9 + 国元网上证券交易(通达信版)
- 全网最全的AI绘画提示词网站,看这一篇就够了!
- Qt编写网络中转服务器(开源)
- Openshift SDN node vxlan 流程
- 面试技巧篇 -- 编码风格 (Coding Style)
- Ecmoban.com坑爹的商创模板堂
- [java]switch....case小练习:输入小写的char类型,并将之转为大写
- Android复制的实现
- Android 获取屏幕尺寸(设备对角线的英寸数)
- 大学生H5动画设计成品作业 —— 城市环保网