初學Python--自動回複信息

今天偶爾看到一個有趣的python庫--itchat,一個封裝的微信API,可以實現微信自動回復,附件下載,發送文件等功能,同時也可以通過手機發送信息,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塊進門的大學永遠不配一流》?
到底應該如何看待微商?
羅永浩能成為中國第一產品經理嗎?
如何評價遊戲「圍住神經貓」?

TAG:Python | 微信 | Python入门 |