初學Python--自動回複信息
目前只實現了微信消息自動回復以及防撤回功能。感謝大家意見,防撤回功能在另一篇文章中進行了改進,歡迎瀏覽
下面簡單介紹
平台:Windows10 專業版 pycharm python3.5
安裝itchat
pip install itchat
關於itchat API的講解,這裡比較清楚詳細,我這寫作水平也講不清楚,大家看這兒吧
主要講講我的代碼,和實現過程、效果
需要的庫
import reimport timeimport itchatfrom itchat.content import *
@itchat.msg_register([TEXT, PICTURE, MAP, CARD, NOTE, SHARING, RECORDING, ATTACHMENT, VIDEO])def text_reply(msg): print(msg["Text"])itchat.auto_login()itchat.run()
消息註冊:
@itchat.msg_register([TEXT, PICTURE, MAP, CARD, NOTE, SHARING, RECORDING, ATTACHMENT, VIDEO])
關於消息類型,詳細的可以參考上面給出的鏈接
在這裡,除了好友邀請和無用消息都進行了註冊登錄itchat.auto_login() 登錄的是你個人微信的web端,然後會彈出一個二維碼,用微信掃一掃即可登錄。
itchat.run()自動運行,檢測消息
然後對上面代碼進行擴充。造血造肉。
@itchat.msg_register([TEXT, PICTURE, MAP, CARD, NOTE, SHARING, RECORDING, ATTACHMENT, VIDEO])def text_reply(msg): if msg["Type"] == "Text": reply_content = msg["Text"] elif msg["Type"] == "Picture": reply_content = r"圖片: " + msg["FileName"] elif msg["Type"] == "Card": reply_content = r" " + msg["RecommendInfo"]["NickName"] + r" 的名片" elif msg["Type"] == "Map": x, y, location = re.search("<location x="(.*?)" y="(.*?)".*label="(.*?)".*", msg["OriContent"]).group(1, 2, 3) if location is None: reply_content = r"位置: 緯度->" + x.__str__() + " 經度->" + y.__str__() else: reply_content = r"位置: " + location elif msg["Type"] == "Note": reply_content = r"通知" elif msg["Type"] == "Sharing": reply_content = r"分享" elif msg["Type"] == "Recording": reply_content = r"語音" elif msg["Type"] == "Attachment": reply_content = r"文件: " + msg["FileName"] elif msg["Type"] == "Video": reply_content = r"視頻: " + msg["FileName"] else: reply_content = r"消息" friend = itchat.search_friends(userName=msg["FromUserName"]) itchat.send(r"Friend:%s -- %s " r"Time:%s " r" Message:%s" % (friend["NickName"], friend["RemarkName"], time.ctime(), reply_content), toUserName="filehelper") itchat.send(r"我已經收到你在【%s】發送的消息【%s】稍後回復。--微信助手(Python版)" % (time.ctime(), reply_content), toUserName=msg["FromUserName"])itchat.auto_login()itchat.run()
開頭的各種if else是為了判斷消息類型進行各種不同的回復
然後是消息的發送函數send(message, toUserName)發送的消息和發送對象
防撤回功能是原理是將消息備份發送到文件助手toUserName="filehelper",由於是接入微信API,讀取消息會比手機端快一些。
自動回復功能是將發送對象改為給你發送消息的好友,大家可以再自定義其他消息回復規則實現個性化回復,針對不同好友的回復。
其他功能還在思考中...過幾天試試通過手機端發送消息到文件助手,電腦端處理消息,解析命令而執行命令。敬請指導、關注註:如果不知道msg還有哪些參數,可以通過print(msg)來查看詳細信息,真的特別詳細。
喜歡點個贊再走唄(/≧▽≦)/~┴┴
推薦閱讀:
※為什麼民間自製表情圖都那麼低清?
※如何看待賈葭這篇《花20塊進門的大學永遠不配一流》?
※到底應該如何看待微商?
※羅永浩能成為中國第一產品經理嗎?
※如何評價遊戲「圍住神經貓」?