用Python寫個了紅包提醒,再不怕錯過一個億了

又到了辭舊迎新的時候,羣裏的紅包也多起來了。然而大佬們總是喜歡趁我不在的時候發紅包,經常打開手機,發現紅包已被搶完,感覺錯過了一個億。

安卓上有不少紅包助手工具,但 iOS 似乎沒有。而且就算有,這種需要很高權限的第三方插件工具總讓人不那麼放心。所以我還是自己來做一個好了。如果要求不那麼高,只要在 出現紅包的時候發出提醒 ,那麼實現起來並不複雜。

先來看下效果(實際使用不需要打開手機,此處爲演示需要):

實現代碼主要有兩個部分:

1、接收紅包消息

直接從手機端微信獲取數據比較麻煩,主流的方法都是 通過微信網頁版來獲取 。因爲網頁版的消息接口可以被抓包分析,比較容易獲取和使用。目前主流的包都是通過這個方式,使用比較多的庫有 itchatwxpy 。這裏我用的是 itchat,通過 pip 即可安裝,之前我也寫過文章介紹:《Crossin:微信機器人進化指南》。

項目地址:

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()

發出聲音需要用到調用系統接口, WindowsMac 有不同的實現,或者也可以通過 pygame 播放 MP3 文件。上面三種方法保留一種即可。

還嫌不夠的話,可以彈個窗:



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

最終效果視頻演示:

python微信紅包提醒演示 https://www.zhihu.com/video/1073230800832622592

完整代碼就上面這兩段,如果你要下載也可以在公衆號 (Crossin的編程教室) 裏回覆關鍵字 紅包 ,裏面還包含了一篇關於紅包算法討論的舊文。

不過由於大量自動化營銷機器人都在使用微信網頁版接口,現在網頁版的功能已被刪減許多,且剛註冊的新號已無法登錄網頁版。有傳言說可能之後會取消網頁版,就像之前的 Web QQ。你在使用 itchat 的時候要注意:

  1. 不要頻率過高過快的發送消息,也是有很大概率被限制網頁版登錄
  2. 登錄狀態有可能掉線,而且掉線是不會有通知的
  3. 不支持領取紅包
  4. 切勿拿來做什麼不好的事情(憑現在的功能其實也做不了啥)

自動搶紅包實現起來就要複雜很多,需要從安卓 APP 層面入手。而且這本身也有風險,據說搶得太快是有可能被系統識別限制賬號的紅包功能,所以請謹慎嘗試。我這裏也不多說了。

如果你真想自動搶,我給你指條明路:

不用謝!

════

其他文章及回答:

如何自學Python | 新手引導 | 精選Python問答 | Python單詞表 | 人工智能 | 爬蟲 | 我用Python | requests | 計算機視覺 | 字符播放器 | 一圖學Python | 智能防擋彈幕

歡迎搜索及關注公衆號: Crossin的編程教室

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章