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下載和拼接微信好友頭像圖片