【Py大法系列--01】20多行代碼生成你的微信聊天機器人


前言

近期Stack Overflow公布了一項調查顯示,Python已經成了發展最快的主流編程語言,Python搭乘着數據科學和機器學習以及人工智能的浪潮,席卷了整個技術圈。越來越多的人想了解、想學Python,從程序猿到數據分析師,從已退休的耄耋老者到乳臭未干的小學生,是的,你沒聽錯,有圖有真相:
嚇人的票圈
到底Python的魅力在於哪?到底它有着什么神奇的力量?尼克決定以一個較為輕松的專題,帶大家認識Python。

今天干什么

有天剛好發現了一個好玩的Python庫(活躍的開源社區,各種第三方庫也是Python能過流行起來的原因):itchat。itchat是一個開源的微信Python Api,貌似是基於網頁版微信做的。主要支持以下幾種場景:消息獲取、消息發送和應用多開。既然可以獲取消息和回復消息,那我們剛好可以做一個自動回復消息的機器人。話不多說,看看itchat怎么用。

itchat簡單介紹

  • 登陸
    itchat.auto_login 
  • itchat安裝
    可以通過本命令安裝itchat:
    pip install itchat
    
  • 給特定的人(如文件助手)發送消息
    import itchat itchat.auto_login() itchat.send('Hello, filehelper', toUserName='filehelper') 
  • 回復消息
    import itchat @itchat.msg_register(itchat.content.TEXT) def text_reply(msg): return msg.text itchat.auto_login() itchat.run() 

其余接口和Api各位可參考itchat的官方文檔。有了這三個接口,我們就可以做一個自己的機器人了。

如何定制自己的機器人

  • 選擇機器人Api
    我選擇的機器人Api是圖靈,一款免費的機器人接口,官方地址為:圖靈機器人。我用到的Api接口為消息回復接口:
    api_url = 'http://www.tuling123.com/openapi/api' data = { 'key': KEY, 'info': msg, } 
    其中api_url為api調用地址,KEY為應用appkey,我的key為
    KEY = '9826d3b387c9483badb65992bfbf63bc' 
    大家可以隨便用。
  • 所有的代碼
    # coding=utf8 import requests import itchat KEY = '9826d3b387c9483badb65992bfbf63bc' def get_response(msg): print("bei diaoyong!") api_url = 'http://www.tuling123.com/openapi/api' data = { 'key': KEY, 'info': msg, } try: r = requests.post(api_url, data=data).json() return r.get('text') except: return @itchat.msg_register(itchat.content.TEXT) def tuling_reply(msg): print(msg.User) print(msg.User['NickName'] + msg['Text']) defaultReply = 'I received: ' + msg['Text'] reply = "I am a Robot:" + get_response(msg['Text']) return reply or defaultReply itchat.auto_login(hotReload=False) itchat.run() 

實際上所有的核心代碼不到30行,即可實現了自動機器人的功能。

  • 代碼講解
    get_response函數的參數為msg,將msg發送給圖靈api,將返回消息回復;tuling_reply函數的作用是,收到消息后,將消息轉發給圖靈api,再將圖靈機器人的回復回復給消息的發送人。@itchat.msg_register(itchat.content.TEXT)是回復消息的裝飾器。在以后的Python學習中會給大家講解。

機器人演示效果

我的女神瑾瑾和機器人快樂的聊天記錄:
A1.png

A2.png

A3.png

A4.png
不過它似乎有點笨,還有點傲嬌。瑾瑾問它顏值打幾分都不知道怎么回答,當然是99分啦。叉車出租哪家公司好

它還能做什么

單調實用的api巧妙的運用即可創造出很多價值,這也是眾多Python庫的特點之一,簡單來說就是Python大法好~目前我能想到的是以下幾種:

  • 防止消息撤回,所有的消息都會被備案
  • 自動回復消息:加入我們有自己的預置消息庫,可以拿itchat做個值班小秘書
  • 監控群聊,別趁我不在偷偷開車嘿嘿嘿嘿… …
  • 搶紅包就不用想了,微信網頁版不支持搶紅包
  • … …


免責聲明!

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



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