如何用Python编写微信聊天机器人程序?

2026-05-26 12:071阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计566个文字,预计阅读时间需要3分钟。

如何用Python编写微信聊天机器人程序?

实验项目:利用微信Python接口itchat获取微信消息。将微信消息传输到机器人接口(例如图灵机器人),获取机器人的回复消息。将回复消息返回给微信消息的发送人。


实验项目:

通过微信的Python接口itchat获取微信消息。

如何用Python编写微信聊天机器人程序?

将微信消息传输到机器人接口(这里以图灵为例),获取机器人的返回消息。

将返回消息返回给微信消息的发送人。

实现将微信个人号变为聊天机器人的目的。

安装itchat模块

pip install itchat

上代码:

#coding=utf8
import requests
import itchat

KEY = '0baa7864b6b14f80b57b238f96718b10' #key

def get_response(msg):
# 这里我们就像在“3. 实现最简单的与图灵机器人的交互”中做的一样
# 构造了要发送给服务器的数据
apiUrl = 'www.tuling123.com/openapi/api'
data = {
'key' : KEY,
'info' : msg,
'userid' : 'wechat-robot',
}
try:
r = requests.post(apiUrl, data=data).json()

# 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常
return r.get('text')
# 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常
# 如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return
except:
# 将会返回一个None
return

# 这里是我们在“1. 实现微信消息的获取”中已经用到过的同样的注册方法
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
# 为了保证在图灵Key出现问题的时候仍旧可以回复,这里设置一个默认回复
defaultReply = 'I received: ' + msg['Text']
# 如果图灵Key出现问题,那么reply将会是None
reply = get_response(msg['Text'])
# a or b的意思是,如果a有内容,那么返回a,否则返回b
# 有内容一般就是指非空或者非None,你可以用`if a: print('True')`来测试
return reply or defaultReply

# 为了让实验过程更加方便(修改程序不用多次扫码),我们使用热启动
itchat.auto_login(hotReload=True)
itchat.run()

运行以上代码:扫码登录就可以实现微信聊天机器人的效果了


本文共计566个文字,预计阅读时间需要3分钟。

如何用Python编写微信聊天机器人程序?

实验项目:利用微信Python接口itchat获取微信消息。将微信消息传输到机器人接口(例如图灵机器人),获取机器人的回复消息。将回复消息返回给微信消息的发送人。


实验项目:

通过微信的Python接口itchat获取微信消息。

如何用Python编写微信聊天机器人程序?

将微信消息传输到机器人接口(这里以图灵为例),获取机器人的返回消息。

将返回消息返回给微信消息的发送人。

实现将微信个人号变为聊天机器人的目的。

安装itchat模块

pip install itchat

上代码:

#coding=utf8
import requests
import itchat

KEY = '0baa7864b6b14f80b57b238f96718b10' #key

def get_response(msg):
# 这里我们就像在“3. 实现最简单的与图灵机器人的交互”中做的一样
# 构造了要发送给服务器的数据
apiUrl = 'www.tuling123.com/openapi/api'
data = {
'key' : KEY,
'info' : msg,
'userid' : 'wechat-robot',
}
try:
r = requests.post(apiUrl, data=data).json()

# 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常
return r.get('text')
# 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常
# 如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return
except:
# 将会返回一个None
return

# 这里是我们在“1. 实现微信消息的获取”中已经用到过的同样的注册方法
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
# 为了保证在图灵Key出现问题的时候仍旧可以回复,这里设置一个默认回复
defaultReply = 'I received: ' + msg['Text']
# 如果图灵Key出现问题,那么reply将会是None
reply = get_response(msg['Text'])
# a or b的意思是,如果a有内容,那么返回a,否则返回b
# 有内容一般就是指非空或者非None,你可以用`if a: print('True')`来测试
return reply or defaultReply

# 为了让实验过程更加方便(修改程序不用多次扫码),我们使用热启动
itchat.auto_login(hotReload=True)
itchat.run()

运行以上代码:扫码登录就可以实现微信聊天机器人的效果了