用二十行代码实现微信自动抢红包(基于sikuli)

【写在前面】

小燕同学:领导经常会在群里发红包,但是我经常一忙就没抢到红包,哎,感觉错过了一个亿。

鹏哥:那我帮你写个微信自动抢红包的程序? (一脸心虚,完全不会呀!python的wechat库都已经被封了,根本连登录微信都还不会搞)

过 了N久以后,

鹏哥:正巧,在工作中 遇到了一个叫Sikuli的图形自动化工具,借来一用。

 

【效果如下】

用二十行代码实现微信自动抢红包(基于sikuli)_第1张图片

 

【实现原理】

1、先大致简介下Sikuli软件

Sikuli本身是通过图形识别,将对应的图形与用户的操作进行相关联。

界面大致如下 :

用二十行代码实现微信自动抢红包(基于sikuli)_第2张图片

通过自定义的函数,可以实现用户操作,比如find实现查找某一图片;click实现鼠标单击操作。从我个人的感觉来说,可以模拟一切界面自动化。

 

2、Sikuli安装:

Sikuli软件安装也是免费的,有两种方法可以实现。

(1)Sikuli官网下载:https://launchpad.net/sikuli/+download。当然需要安装JDK 8.0以上版本。然后可以通过sikulixsetup-1.1.3.jar联网下载。

在安装开始时,选择1和2,其他都用默认选项即可。

用二十行代码实现微信自动抢红包(基于sikuli)_第3张图片

(2)Sikuli免网络下载:由于家里网络不好,无法通过联网下载。因此我又找到了免下载的安装包。

https://dl.pconline.com.cn/download/812455.html

 

3、微信抢红包的实现:

(1)问题一:桌面版微信看不到红包。

因为 sikuli软件可以在window系统上运行,因此一开始我安装了微信的桌面版。但是发现桌面版微信是看不到红包的,而且也不能发红包。

    解决方法:

    平时经常看各种主播玩手游,因此想到了通过安卓模拟器来使用微信。

没想到有一天,我解决问题是 因为我平时爱看直播,哈哈。对了,我用的是雷电模拟器。

用二十行代码实现微信自动抢红包(基于sikuli)_第4张图片

 

(2)问题二:Sikuli自带 数太少,无法进行功能优化,如对已抢红包不处理等。

由于Sikuli自带函数比较少,只有一些最基本的查找、比对、单击、右键、双击、拖拉等按钮,因此对微信抢红包的优化暂没有投入研究。

从其他博客中 ,有看到,可能 将python selenium与sikuli结合起来使用,那下次再学习下。

 

(3)问题三:目前代码还未实现自动登录微信的功能,因此需要用户提前在雷电模拟器上登录进微信。

 

【示例代码】

我代码逻辑是每隔5S进行红包检测,如果发现有红包就进行抢红包;如果没发现红包,就sleep(5)。

由于最近发现CSDN上好多资料下载需要积分,因此就将源码上传到CSDN网站了,以此换积分吧。

用二十行代码实现微信自动抢红包(基于sikuli)_第5张图片

Sikuli软件还是很简单的,可以自己快速入手的。

 

【写在最后】

革命尚未成功,吾将继续努力!

你可能感兴趣的:(Python成长之路)