社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

用Python写个了红包提醒,再不怕错过一个亿了

Crossin的编程教室 • 7 年前 • 652 次点击  

又到了辞旧迎新的时候,群里的红包也多起来了。然而大佬们总是喜欢趁我不在的时候发红包,经常打开手机,发现红包已被抢完,感觉错过了一个亿。

安卓上有不少红包助手工具,但 iOS 似乎没有。而且就算有,这种需要很高权限的第三方插件工具总让人不那么放心。所以我还是自己来做一个好了。如果要求不那么高,只要在出现红包的时候发出提醒,那么实现起来并不复杂。

先来看下效果(实际使用不需要打开手机,此处为演示需要):

实现代码主要有两个部分:

1、接收红包消息

直接从手机端微信获取数据比较麻烦,主流的方法都是通过微信网页版来获取。因为网页版的消息接口可以被抓包分析,比较容易获取和使用。目前主流的包都是通过这个方式,使用比较多的库有 itchat、wxpy。这里我用的是 itchat,通过 pip 即可安装,之前我也写过文章介绍:《微信机器人进化指南》。

项目地址: 

https://github.com/littlecodersh/ItChat

核心代码:

import itchat

@itchat.msg_register('Note', isGroupChat=True)
def get_note(msg):    if '红包' in msg['Text']:        print('note:',msg['Text'])        alarm()  # 自定义提醒

itchat.auto_login(hotReload=True) itchat.run() itchat.logout()

msg_register是注册消息时间的响应函数,'Note'是红包、转账等通知消息类型,isGroupChat=True包含了群聊。当网页版收到红包后,会显示“收到红包,请在手机上查看”。所以判断消息文本中包含“红包”字样时,就发出提醒。

由于是基于网页版运行,代码运行后,需要用手机扫二维码登录。

2、发通知

最简单的通知方法就是发出声音,在 Python 中有几种不同实现:

def alarm():
    # Windows嗡鸣声
    import winsound
    winsound.Beep(1000, 3000)

   # Mac语音    import os    os.system('say "有人发红包了,赶紧去抢啊!"')

   # 播放MP3    import pygame    pygame.mixer.init()    track = pygame.mixer.music.load('alarm.mp3')    pygame.mixer.music.play()

发出声音需要用到调用系统接口,Windows 和 Mac 有不同的实现,或者也可以通过 pygame 播放 MP3 文件。上面三种方法保留一种即可。

还嫌不够的话,可以弹个窗:

import tkinter.messagebox 
tkinter.messagebox.showinfo('重要提醒','有人发红包啦!')

最终效果视频演示:

完整代码就上面这两段,如果你要下载也可以在公众号(Crossin的编程教室)里回复关键字 红包,里面还包含了一篇关于红包算法讨论的旧文。

不过由于大量自动化营销机器人都在使用微信网页版接口,现在网页版的功能已被删减许多,且刚注册的新号已无法登录网页版。有传言说可能之后会取消网页版,就像之前的 Web QQ。你在使用 itchat 的时候要注意:

  1. 不要频率过高过快的发送消息,也是有很大概率被限制网页版登录

  2. 登录状态有可能掉线,而且掉线是不会有通知的

  3. 不支持领取红包

  4. 切勿拿来做什么不好的事情(凭现在的功能其实也做不了啥)

自动抢红包实现起来就要复杂很多,需要从安卓 APP 层面入手。而且这本身也有风险,据说抢得太快是有可能被系统识别限制账号的红包功能,所以请谨慎尝试。我这里也不多说了。

如果你真想自动抢,我给你指条明路:

不用谢!



话说,抢到红包之后怎么办?当然是交给妈妈帮你存起来啦或者,你也可以了解一些金融、理财方面的知识,让资产保值增值,生活更有保障。比如像我这位朋友--保哥,他的公众号【 保哥和八姐 】就可以让你增加对保险的了解。

保哥毕业于中南财大,在保险公司摸爬滚打了十年,主要是做保险产品设计和核赔类工作。现在开始写公号,一是而立之年已过,想对多年的工作经验做一些梳理,二是确实也喜欢写作,年轻时有一个作家梦。

他的老婆八姐是早稻田的金融硕士,标准的学霸一枚,也在金融圈内混,经常香港大陆两地跑,偶尔也会帮老公写点文章。

保哥的公号我经常看,通过他的文章学会了不少保险知识,理清了自己家庭的保障方案,避免了很多坑,对这方面有需求的朋友不妨看一看。


在这儿顺便给大家提前拜个早年,各位新年诸事顺利!




欢迎加入

Crossin的编程教室

crossincode.com

☟点击文末“阅读原文”,查看更多学习资源


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/Qodne1QFJV
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/28208