Python趣味實(shí)戰(zhàn)項(xiàng)目:搶紅包提醒助手
最近后臺(tái)有朋友問我學(xué)Python去哪刷題?我覺得看完P(guān)ython的基礎(chǔ)知識(shí)后,如果不著急找工作,在力扣上適當(dāng)?shù)乃⑺㈩}鞏固下基礎(chǔ)知識(shí)后,可以慢慢學(xué)著寫一些有趣的小項(xiàng)目,對(duì)你學(xué)習(xí)Python會(huì)更有幫助些。
對(duì)于大家困惑的怎么從Python理論跨越到實(shí)踐的問題,可以看看我寫的為什么學(xué)了這么久Python,還是寫不出項(xiàng)目?3招幫你解決這個(gè)問題。
今天我就來(lái)和大家分享下最近研究的一個(gè)Python趣味實(shí)戰(zhàn)項(xiàng)目,用Python制作一個(gè)微信搶紅包提醒助手。
有的同學(xué)可能覺得這不是一個(gè)新穎的話題,網(wǎng)上很多人都寫過了,但我寫的這個(gè)搶紅包提醒助手,主要有以下幾個(gè)創(chuàng)新點(diǎn):
(1).只用安裝wxpy庫(kù),網(wǎng)上關(guān)于這個(gè)項(xiàng)目用的itchat庫(kù),但這對(duì)于新手來(lái)說(shuō)并不友好,而且wxpy庫(kù)其實(shí)已經(jīng)封裝了itchat的功能,所以只安裝wxpy庫(kù)也是可以的。
(2).可以監(jiān)控群里某個(gè)人,比如某個(gè)群里經(jīng)常發(fā)紅包的大佬,但有的群平時(shí)大家都在水群,很多人習(xí)慣將這種群設(shè)置為「消息免提醒狀態(tài)」,這樣往往就會(huì)和紅包失之交臂。
(3).一旦監(jiān)控到發(fā)紅包,可以將消息發(fā)送給需要提醒的人,如果沒有提醒的人,那么就自動(dòng)發(fā)送到微信的文件助手。
(4).監(jiān)控到有人發(fā)紅包后,不僅會(huì)有發(fā)送消息的提醒,我還設(shè)置了聲音、窗口提醒,這樣使得整個(gè)項(xiàng)目運(yùn)行起來(lái)顯得更有趣。
聽了我上面的介紹,是不是有點(diǎn)迫不及待啦,那就和我一起來(lái)看看怎么實(shí)現(xiàn)這個(gè)趣味項(xiàng)目吧。
1、安裝庫(kù)
pip install wxpy
2、啟動(dòng)群監(jiān)控機(jī)器人
啟動(dòng)一個(gè)簡(jiǎn)單的wxpy機(jī)器人,大概只有10行不到,非常簡(jiǎn)單,我們安裝好了wxpy之后就可以敲下面的代碼
運(yùn)行之后會(huì)彈出一個(gè)二維碼掃描的窗口,用微信的掃一掃即可登入(注意,必須是認(rèn)證過的微信號(hào)才行),接著你會(huì)看到下面的界面,說(shuō)明登入成功
3、解釋幾個(gè)關(guān)鍵的參數(shù)
對(duì)于wxpy不熟悉的同學(xué),可以搜一下wxpy使用文檔,我們?cè)趯懘a的過程中會(huì)用到msg這個(gè)類,比如msg.chat它會(huì)返回群聊group的名字,msg.member返回的是群?jiǎn)T,msg.type則返回的是text
這里對(duì)type的幾個(gè)參數(shù)簡(jiǎn)要說(shuō)明一下
我們比較關(guān)注文本和提示,因?yàn)榧t包就是提示類的消息,而文本就是我們普通的聊天內(nèi)容。
詳細(xì)可以參考源碼路徑wxpy.api.messages.message.py
4、如何發(fā)出搶紅包提醒
在Python中主要有以下幾種不同的實(shí)現(xiàn)方法
發(fā)出聲音需要調(diào)用系統(tǒng)接口,Windows和Mac實(shí)現(xiàn)方法不同,如果你再想花哨點(diǎn),還可以通過pygame播放MP3。
當(dāng)然,為了增加項(xiàng)目趣味性,可以增加一個(gè)彈窗提醒:
- import tkinter.messagebox
- tkinter.messagebox.showinfo('重要提醒','有人發(fā)紅包啦!')
5、監(jiān)控個(gè)人和監(jiān)控群非常類似
以監(jiān)控個(gè)人為例,代碼如下:
6、結(jié)果展示
總結(jié)
看完這個(gè)項(xiàng)目后,是不是覺得python挺有意思的,如果感興趣的同學(xué),可以后臺(tái)回復(fù)「紅包」獲取項(xiàng)目的源代碼。當(dāng)然,我更希望小伙伴們拿到代碼后,不僅局限于復(fù)制粘貼后跑一遍程序,還能夠自己再增加些更有趣的功能,提高自己的編程能力。