哈喽大家好,我是鹏哥。
今天要记录的内容是 —— 用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.2
from jpype import *
import jpype
import time
import 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