1. 程式人生 > >10分鐘教你用Python打造天氣機器人+關鍵字自動回覆+定時傳送

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