微信抢红包python脚本不用手机_用Python实现微信自动化抢红包,再也不用担心抢不到红包了...
1. 概述
刚刚收到了两个消息,一个好消息,一个坏消息。
先说好消息,好消息就是微信群里有人要发红包,开心~
不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 …
过了一会,内心的情绪逐渐平复了。
心想:“难道就这么放弃了吗?晚饭还吃泡面(泡面感觉有被冒犯到)?但是手动抢肯定没戏,毕竟手can谁也没办法!那就只能试试能不能通过编程的方式实现自动化抢红包了!”
现在捋一下思路,微信群发红包的基本情况是:每一次发红包都会与上一次有一些时间间隔,实现自动化抢红包的基本思路如下:
手动清空之前微信群中的红包记录
执行自动化抢红包程序,进入发红包的微信群(可以暂时将其顶置),循环检测群中是否有红包,发现红包则点击红包
检测红包是否被领取(判断点击后的红包是否出现开字),如果红包未被领取,则点击开字领取红包,再返回群聊界面删除已被领取的红包记录;如果红包已被领取,则返回群聊界面删除已被领取的红包记录,之后以此类推
2. 环境
本文主要环境如下:
Win7
小米5s
Python3.7
Appium1.5
微信7.0.20
3. 实现
接下来我们开始手动敲代码,下面一起来看一下具体实现。
首先看一下配置信息,代码实现如下:
1
2
3
4
5
6
7
8
9
desired_caps = {
"platformName": "Android", # 系统 "platformVersion": "8.0.0", # 系统版本号 "deviceName": "m5s", # 设备名 "appPackage": "com.tencent.mm", # 包名 "appActivity": ".ui.LauncherUI", # app 启动时主 Activity 'unicodeKeyboard': True, # 使用自带输入法 'noReset': True # 保留 session 信息,可以避免重新登录}
因为点击红包后需要判断点击后的红包是否被领取,即是否有开字,如图所示:
所以我们定义一个判断元素是否存在的方法,代码实现如下:
1
2
3
4
5
6
7
8
# 判断元素是否存在def is_element_exist(driver, by, value):
try:
driver.find_element(by=by, value=value)
except Exception as e:
return False
else:
return True
因为红包无论是被自己领取还是被他人领取,之后都要删除领取后的红包记录,所以我们再来定义一个删除已领取红包的方法,代码实现如下:
1
2
3
4
5
6
7
8
9
# 删除领取后的红包记录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()
长按领取后红包的效果图如下:
点击长按后显示的删除项之后的效果图如下:
我们接着来看一下进入红包群后的主程序实现,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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小二”(other)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
微信抢红包python脚本不用手机_用Python实现微信自动化抢红包,再也不用担心抢不到红包了...相关推荐
- python脚本运行命令_从Python脚本运行shell命令
我正在尝试从 python脚本中运行一个shell命令,它需要做几件事 1. shell命令是'hspice tran.deck>! tran.lis' 2.在继续之前,脚本应该等待shell命 ...
- python脚本怎么使用_在Python中使用next()方法操作文件的教程
next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如Re ...
- python实现抢劵_用Python实现微信自动化抢红包,再也不用担心抢不到红包了
1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 ... 过了一会, ...
- python远程控制电脑_只需一个python脚本就可远程控制电脑,打开微信即可远程遥控操作...
原标题:只需一个python脚本就可远程控制电脑,打开微信即可远程遥控操作 今天带给大家一个非常有意思的 python 程序,基于 itchat 实现微信控制电脑.你可以通过在微信发送命令,来拍摄当前 ...
- python写手机脚本脱离电脑_在手机里编写python脚本控制手机
今天我有一个大胆的想法,想在手机里面编写python脚本自动化控制手机.既然有了这么大胆而想法,而且我还能实现,那么就有了我现在这篇文章. 如何在手机里面编程 首先先介绍一款能直接在手机里面运行代码的 ...
- python手机版怎么运行项目或脚本-把Python脚本放到手机上定时运行
毫无疑问,数据是数据分析的基础,而对于我等平民来说,获取大量数据的方式自然是通过爬虫采集,而对于笔者来说,写爬虫最自然的方式就是用Python写了.短短几行代码,就可以完成一个实用的爬虫,多清爽.(请 ...
- android微信朋友圈视频无法播放,微信朋友圈不能分享手机视频怎么回事?微信朋友圈大视频功能安卓不能用吗?...
微信朋友圈不能分享手机视频怎么回事?微信朋友圈大视频功能安卓不能用吗?最近微信更新,用户可以进行分享自己手机里的视频,这一举措受到很多人的喜欢.那么微信朋友圈不能分享手机视频怎么回事?微信朋友圈大视频 ...
- 哪些软件是python编写出来的_用Python编程需要什么软件?
用Python编程需要什么软件?Python编程是一门适合新手入门的编程语言,现在有不少程序员业余时间学习Python编程语言,学习Python找到好工具会大大提高学习的效率.好用的Python编程软 ...
- python实现自动化抢微信红包功能_【Python】用Python实现微信自动化抢红包,再也不用担心抢不到红包了...
1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 - 过了一会,内心 ...
最新文章
- error:CLEARTEXT communication to api.help.bj.cn not permitted by network security policy
- 用.NET创建Windows服务
- Java项目:朴素风个人博客系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
- rand和srand
- 正确入门Service Mesh:起源、发展和现状
- React 教程第六篇 —— 样式绑定
- 大家在寻找的高级程序员到底是什么样子的?
- FFMPEG的详细资料可以在它的官方网站上找到
- lineNumber: 1; columnNumber: 1; 前言中不允许有内容
- 实操来了!一文告诉你如何用 Streamlit 和 Heroku 开发 Web
- sqlachemy入门基础手册
- oracle 建表字段设置,Oracle创建表、删除表、修改表(添加字段、修改字段、删除字段)语句总结...
- 【SpringBoot】Logback日志框架介绍和SpringBoot整合实战
- The North American Invitational Programming Contest 2016 - Tourists ( LCA )
- MySQL的sql_mode解析设置
- 继承学习第一天 共有派生
- ARM裸机--看门狗定时器
- 关于谷歌浏览器全线崩溃的原因及几种解决办法(疑难杂症篇)
- 上传APP到AppStore遇到的各种错误
- C语言:编求阶乘函数