python实战项目,使用itchat模块制作微信聊天机器人

前言


对于咱们热爱折腾的青年来说,经常会有很多好玩的新奇创意想法,可是,有时候就缺少一个接口,实现交互。比如说,咱们博客的 python实战项目,有些的确比较好玩,但是似乎只能在电脑上跑跑程序,怎么运用到实践中呢?

微信公众号似乎是个不错的接口,但是,它需要服务器的80端口去做开发。今天无意发现了这个 itchat 模块,可以让咱们实现用 python操纵微信 ,这样,接口就有了,咱们就可以把之前做的几个 python 实战项目应用起来了。

python 模块 itchat 简介


itchat 是一个开源项目,其代码托管在 github 上。itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。

1. itchat 的安装

可以通过本命令安装itchat:

pip install itchat

2. itchat 简单入门实例

有了itchat,如果你想要给文件传输助手发一条信息,只需要这样:

import itchat

itchat.auto_login()
itchat.send('你好,向日葵智能。', toUserName='filehelper')

如果你想要回复发给自己的文本消息,只需要这样:

import itchat

@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
    return msg.text

itchat.auto_login()
itchat.run()

python实战项目,itchat 初试


1. 利用 itchat 发送微信信息 “你好,向日葵智能”

新建文件 test.py,写入代码,然后运行:

#encoding=utf8
import itchat

itchat.auto_login()
itchat.send(u'你好,向日葵智能。', toUserName='filehelper')

弹出了一个二维码,用微信扫一扫登录,这里猜测它是利用网页版微信实现的。

扫一扫后,发现的确是网页登录。并且在文件助手里确实收到了发送的信息。

2. 让微信自动重复好友的话

我的微信好友列表里有个好友名叫 robotO,现在咱们做一个工具,自动重复他的话。把 test.py 文件的代码修改如下:

#encoding=utf8
import itchat

@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
    return u"向日葵智能: %s" % msg.text

itchat.auto_login()
itchat.run()

运行,发现成功了,我的微信收到他的信息后,在前面加上向日葵智能,然后再发送给他。

3. python实战项目,制作微信聊天机器人


(1) 图灵机器人

现在人工智能非常火,有很多种方法可以实现聊天机器人。当然,最方便的方法肯定是利用别人现成的 API。咱们这里以图灵机器人为例,可以免费使用。

#coding=utf8
import requests, json

apiUrl = 'http://www.tuling123.com/openapi/api'
data = {
    'key'    : '45c62xxxxxxxxxxxxxxx2d2526a3', # Tuling Key 注册后可以免费获得一个
    'info'   : '向日葵智能',                     # 这是我们发出去的消息
    'userid' : 'www.xrkzn.cn',                  
}
r = requests.post(apiUrl, data=data)
print r.content

运行python实战项目脚本,得到如下输出:

$ python test.py 
{"code":100000,"text":"你好"}

(2)python项目实战,微信聊天机器人

可以看出,图灵机器人返回的是 json 数据。咱们如果要使用,加上 json 解析就可以了。那么,咱们的 python项目实战,微信聊天机器人可以如下完成:

#coding=utf8
import itchat
import requests, json

apiUrl = 'http://www.tuling123.com/openapi/api'

# 根据输入的 content 信息,获取自动回复信息
def GetReply(content):
    data = {
        'key'    : '45c623xxxxxxxxxxxxxx26a3', # Tuling Key 注册后可以免费获得一个
        'info'   : u'%s'%content,                   # 这是我们发出去的消息
        'userid' : 'www.xrkzn.cn',                  
    }
    r = requests.post(apiUrl, data=data)
    js = json.loads(r.content)
    return js['text']

@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
    # print GetReply(msg.text)
    return GetReply(msg.text)

if __name__ == "__main__":
    itchat.auto_login(hotReload=True)
    itchat.run()

运行脚本,发现聊天机器人打造完成。

这是一个不错的模块,咱们当然不会浅尝辄止。后续慢慢把咱们的人工智能等 python实战项目 都加进去。keep going...

阅读更多:   Python
添加新评论