又到了辭舊迎新的時候,羣裏的紅包也多起來了。然而大佬們老是喜歡趁我不在的時候發紅包,常常打開手機,發現紅包已被搶完,感受錯過了一個億。python
安卓上有很多紅包助手工具,但 iOS 彷佛沒有。並且就算有,這種須要很高權限的第三方插件工具總讓人不那麼放心。因此我仍是本身來作一個好了。若是要求不那麼高,只要在出現紅包的時候發出提醒,那麼實現起來並不複雜。git
先來看下效果(實際使用不須要打開手機,此處爲演示須要):github
實現代碼主要有兩個部分:算法
直接從手機端VX獲取數據比較麻煩,主流的方法都是經過VX網頁版來獲取。由於網頁版的消息接口能夠被抓包分析,比較容易獲取和使用。目前主流的包都是經過這個方式,使用比較多的庫有 itchat、wxpy。這裏我用的是 itchat,經過 pip 便可安裝,以前我也寫過文章介紹:《Crossin:VX機器人進化指南》。編程
項目地址: ide
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
包含了羣聊。當網頁版收到紅包後,會顯示「收到紅包,請在手機上查看」。因此判斷消息文本中包含「紅包」字樣時,就發出提醒。人工智能
因爲是基於網頁版運行,代碼運行後,須要用手機掃二維碼登陸。spa
最簡單的通知方法就是發出聲音,在 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的編程教室)裏回覆關鍵字 紅包,裏面還包含了一篇關於紅包算法討論的舊文。
不過因爲大量自動化營銷機器人都在使用VX網頁版接口,如今網頁版的功能已被刪減許多,且剛註冊的新號已沒法登陸網頁版。有傳言說可能以後會取消網頁版,就像以前的 Web QQ。你在使用 itchat 的時候要注意:
自動搶紅包實現起來就要複雜不少,須要從安卓 APP 層面入手。並且這自己也有風險,聽說搶得太快是有可能被系統識別限制帳號的紅包功能,因此請謹慎嘗試。我這裏也很少說了。
若是你真想自動搶,我給你指條明路:
不用謝!
════
其餘文章及回答:
如何自學Python | 新手引導 | 精選Python問答 | Python單詞表 | 人工智能 | 爬蟲 | 我用Python | requests | 計算機視覺 | 字符播放器 | 一圖學Python | 智能防擋彈幕
歡迎搜索及關注公*號:Crossin的編程教室