5

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

 4 years ago
source link: https://blog.popkx.com/python-project-itchat-make-wechat-robot/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

前言


对于咱们热爱折腾的青年来说,经常会有很多好玩的新奇创意想法,可是,有时候就缺少一个接口,实现交互。比如说,咱们博客的 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...


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK