整体思路
- 将需要自动回复的好友配置在配置文件中,脚本启动后自动读取配置
- 利用python库itchat实现微信消息的收发
- 收到消息后,发给思知机器人去处理,得到回复消息后发送给好友
前置准备
安装相关库
pip install itchat
pip install requests
注册思知账号
注册思知账号,创建一个机器人,可对机器人进行设置,训练。具体使用参考官网文档:思知机器人。
当然还有很多机器人可供选择,比如图灵机器人。
代码
import requests
import itchat
import os
needAutoAnswer = []
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
'Referer': 'https://robot.ownthink.com/',
}
# 机器人配置
def get_data(text):
data = {
"appid": "思知中添加完机器人后,每个机器人有一个appid",
"userid": "注册思知用的邮箱就行",
"spoken": text,
}
return data
def readAutoAnswerList():
global needAutoAnswer
# 自动回复文件中将需要自动回复好友的备注填写上,一行一个好友
file_path = os.getcwd() + '\\自动回复.txt'
file = open(file_path,"r", encoding="utf-8")
needAutoAnswer = [line.strip('\n') for line in file.readlines()]
file.close()
def get_answer(text):
data = get_data(text)
url = 'https://api.ownthink.com/bot'
response = requests.post(url=url, data=data, headers=headers)
response.encoding = 'utf-8'
result = response.json()
answer = result['data']['info']['text']
return answer
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
friend = msg['User']['RemarkName']
content = msg['Content']
print('%s: %s' % (friend, content))
if friend in needAutoAnswer:
answer = get_answer(content)
itchat.send(answer, msg['FromUserName'])
print('我:%s' % answer)
if __name__ == "__main__":
readAutoAnswerList()
itchat.auto_login(hotReload=True)
itchat.run()
打包测试以及打包exe可执行文件
如何测试
运行python脚本,会生成一个微信登录的二维码图片,扫描登录成功,即可实现微信消息的自动回复
如何打包可执行文件
测试ok后,可以通过命令pyinstaller -F xxx.py
打包成可执行文件,命令执行完后,会在当前目录下创建一个dist目录,可执行文件就在该目录下。