10分鍾教你用Python打造天氣機器人+關鍵字自動回復+定時發送


01 前言

Hello,各位小伙伴。自上次我們介紹了Python實現天氣預報的功能以后,那個小程序還有諸多不完善的地方,今天,我們再次來完善一下我們的小程序。比如我們想給機器人發“天氣”等關鍵字,它就自動獲取天氣發送給我們,或者准點准時給我們發送天氣預報等消息。

02 先來看看效果

后台登錄效果:

微信關鍵字回復:

怎樣,心動嗎?廢話不多說,開始干活吧。

03 關鍵字回復

前面我們已經實現了天氣的獲取和發送,現在來利用itchat的幾個功能,實現關鍵詞的提取和發送相關信息吧。

在這里呢,我們需要寫一個函數裝飾一下

1itchat.msg_register([TEXT])這個函數,表示收到消息以后,額外執行一些我們期望執行的操作。(不了解修飾器的同學自己再回去補一下基礎)。
2# 如果對方發的是文字,則我們給對方回復以下的東西
3@itchat.msg_register([TEXT])
4def text_reply(msg):
5    match = re.search('天氣',msg['Text'])
6    if match:
7        city = msg['Text'][msg['Text'].find("+")+1:]
8        weather_main(msg['FromUserName'], city)

這部分操作也很簡單,首先獲取我們收到的文本消息,然后在里面找找看有沒有我們想要的關鍵詞,比如“天氣”等,最后,將天氣后面的城市給提取出來,獲取必要的信息后,將發信人,城市傳給上節課寫好的weather_main()函數里面,實現消息發送。當然,上節課的weather_main()也要做相應修改,不過改動不大,大家看最后代碼即可。

04 定時發送

然后再來看看定時發送的功能吧。這個功能就比較簡單了,一個sleep函數睡到底就行。主要是設置隔多長時間給想關的人發送天氣預報。

1def timer(n):
2    '''''
3    每n秒執行一次
4    '''

5    while True:
6        weather_main("要發送的人備注""城市")  # 此處為要執行的任務
7        time.sleep(n)

比較簡單吧。

05 完整代碼

欲獲取代碼,請關注我們的微信公眾號【程序猿聲】,在后台回復:pycode05。即可獲取。

微信公眾號微信公眾號

推薦文章:10分鍾教你用Python做個打飛機小游戲超詳細教程
推薦文章:10分鍾教你用python下載和拼接微信好友頭像圖片


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM