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

Crossin先生發表於2019-01-28

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

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

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

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

實現程式碼主要有兩個部分:

1、接收紅包訊息

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

專案地址:

github.com/littlecoders

核心程式碼:

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寫個了紅包提醒,再不怕錯過一個億了 python微信紅包提醒演示 https://www.zhihu.com/video/1073230800832622592

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

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

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

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

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

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

不用謝!


════

其他文章及回答:

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

歡迎搜尋及關注公眾號:Crossin的程式設計教室

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

相關文章