
哈喽大家好,我是鹏哥。
今天要记录的内容是 —— 用python完成微信抢红包。
~~~上课铃~~~
1 写在前面
哈哈,今天的歌曲是过年必备款(主要是我懒得找适应节奏的流行歌)。向来对春晚不感冒的我,对微信红包是相当感兴趣。之前其实就已经写过 如何基于sikuli IDE软件实现微信抢红包,但是当时遗留了个问题:如何最终通过python实现呢?
今天,算是给今年的遗留问题做个了结。同时在这么一个喜庆的日子,抢些红包买糖呀!
2 效果展示

3 知识串讲(敲黑板啦)
其实这篇博客的代码,没什么新知识点,都是炒冷饭。如果是刚关注我的伙伴,我给你们做个链接,方便你们学习掌握sikuli框架的自动化实现。
1、了解sikuli,及学会如何基于IDE平台实现抢红包。
2、学会sikuli jar的python调用,并讲解对应类、方法的使用
【Python成长之路】基于sikuli jar包,实现淘宝自动抢单功能(1)
综上这两篇博客,基本已经讲过了本文示例代码。
4 示例代码
# coding=utf-8# @公众号 : "鹏哥贼优秀"# @Date : 2020/1/24# @Software : PyCharm# @Python version: Python 3.7.2from jpype import *import jpypeimport timeimport win32api,win32con# 为了缩小pycharm窗口,相当于同时按下win+向下方向键def Minimize_Window():win32api.keybd_event(91, 0, 0, 0)time.sleep(0.5)win32api.keybd_event(40, 0, 0, 0)time.sleep(0.5)win32api.keybd_event(91, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(40, 0, win32con.KEYEVENTF_KEYUP, 0)def get_lucky_money():jvmPath = jpype.get_default_jvm_path()# Djava.class.path是本地的sikuliapi.jar包路径,需要提前下载好jpype.startJVM(jvmPath, '-ea', '-Djava.class.path=F:\\sikuli\\1\\sikulixapi.jar')Screen = JClass('org.sikuli.script.Screen')myscreen = Screen()Minimize_Window()Minimize_Window()# 通过判断微信界面是否出现“[微信红包]”字眼进行判断while True:if myscreen.exists('1.png') or myscreen.exists('1-1.png'):print('发现红包!')try:myscreen.doubleClick("1.png")except:myscreen.doubleClick('1-1.png')if myscreen.exists("2.png"):try:myscreen.doubleClick("2.png")time.sleep(0.5)myscreen.click('3.png')print("抢到红包!")except:print("未抢到红包或者红包已抢过!")time.sleep(0.3)myscreen.click("4.png")time.sleep(0.3)if myscreen.exists('5.png'):myscreen.click("5.png")else:print('等待中……')time.sleep(5)if __name__ == "__main__":get_lucky_money()
1.jpg
1-1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
5 总结



~~~下课铃~~~

【往期热门文章】:
【Python成长之路】10行代码教你免费观看无广告版的《庆余年》腾讯视频

【关注“鹏哥贼优秀”公众号,回复“python学习材料”,将会有python基础学习、机器学习、数据挖掘、高级编程教程等100G视频资料,及100+份python相关电子书免费赠送!】
扫描二维码
与鹏哥一起
学python吧!

本文分享自微信公众号 - 鹏哥贼优秀(yzp_to_be_best)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4607048/blog/4475221