Python中如何使用wechat-admin通过Web管理微信和微信机器人
我来求赞(✪ω✪) ,只说重点,其他的有兴趣的可以看 基于 Flask+Vue+Celery+SQLAlchemy+Redis 等实现的微信管理系统。
目前包含的功能
- 支持显示好友列表,可过滤
- 支持显示群聊列表,可过滤
- 可以同时给多个用户 /群聊成员发送消息,支持发送文件,emoji 表情。可预览
- 如果为群聊创建者,可以删除(多个)成员
- 可以选择好友 /群聊成员创建新群
- 对自动建群、加群关键词、邀请文本等可配置
- 永久保存消息,可以通过消息列表页面查看和过滤。接收消息进程停止自动重启
- 支持消息提醒
- 支持发送加群聊成员好友请求
- 自动添加联系人,拉对方入群,群满之后自动创建新群
- 支持灵活的插件系统,内置图灵机器人、ChatterBot、Simsimi 等插件
- 可以指定公众号,当公众号发布文章后自动转发到指定的群聊里
- 群成员可发起投票踢人,可以灵活的设置投票规则
效果可以看这个视频
用的技术和库
前端
Vue+Element-UI+Vue-cli+Vue-Router+Axios
其中 Vue 除了 SSR 外(没必要)的各种功能基本都用到了。
后端(只支持 Python 3 )
Flask+Celery+SSE+Walrus+Gunicorn+Flask-Migrate+Flask-SQLAlchemy+ItChat ( Fork 版本)+Wxpy ( Fork 版本)+PyMySQL+Redis
在目前这种用 Vue+Flask 实现的较完整的、相对复杂的例子很少的情况下,这个项目也可以让新手了解到前后端是如何结合的和构建的。
另外提供 Docker Compose 的方式让你快速部署应用。
插件
目前自带了 4 个插件:
- Simsimi。也就是当年的小黄鸡。默认未开启
- Help。帮助插件,根据所有插件的 description 属性的内容生成
- Tuling。图灵机器人,@群主即可开聊
- Chatter。基于机器学习的 ChatterBot,要和群主私聊
欢迎 star: dongweiming/wechat-admin 和使用,如果你有更多有意思的想法和功能欢迎提交 PR 和 Issue,另外也可以贡献更多的插件。
如果你对本项目有兴趣,可以加 Sanic (微信号 python-org )入群感受,也可直接扫描如下二维码加我,如果验证信息中包含 python 可以直接进群,否则可以和 Py 之美私聊进群, 可打开项目链接进群:

其中第三个二维码是微信公众号「 Python 之美」(微信号 python_cn ),我将在公众号中介绍这个项目技术选型,实现,走过的一些坑,还有 Vue 等相关的一些内容,欢迎关注。
Python中如何使用wechat-admin通过Web管理微信和微信机器人
前排支持
这个需求挺常见的。wechat-admin 是一个基于 itchat-uos 的微信机器人 Web 管理面板,让你能在浏览器里管理微信和机器人。
首先,你得确保环境装对了。用 pip 安装核心依赖:
pip install itchat-uos flask flask-socketio
wechat-admin 本身可能没有直接上 PyPI,你得从 GitHub 上拉下来。通常项目结构里会有一个主启动文件,比如叫 app.py 或 run.py。
一个最基础的启动脚本大概长这样:
# run_bot.py
import itchat
from itchat.content import *
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
import threading
import time
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key_here'
socketio = SocketIO(app)
# 存储登录的微信实例
wechat_instance = None
# 处理文本消息
@itchat.msg_register(TEXT)
def text_reply(msg):
print(f"收到消息: {msg['Text']} from {msg['FromUserName']}")
# 这里可以加你的自动回复逻辑
# 例如:return '自动回复: ' + msg['Text']
return None
# Web 路由 - 管理页面
@app.route('/')
def index():
return render_template('index.html') # 需要自己写前端页面
# 通过 Web 接口发送消息
@app.route('/send_msg/<user>/<message>')
def send_message(user, message):
if wechat_instance:
wechat_instance.send_msg(message, toUserName=user)
return f"消息已发送给 {user}"
return "微信未登录"
# 启动微信登录(在后台线程)
def start_wechat():
global wechat_instance
wechat_instance = itchat.new_instance()
wechat_instance.auto_login(hotReload=True, enableCmdQR=2) # 控制台显示二维码
wechat_instance.run()
if __name__ == '__main__':
# 在新线程中启动微信
wechat_thread = threading.Thread(target=start_wechat)
wechat_thread.daemon = True
wechat_thread.start()
# 启动 Flask Web 服务
print("Web 管理界面将在 http://localhost:5000 启动")
socketio.run(app, host='0.0.0.0', port=5000, debug=False)
不过说实话,上面这个只是原理演示,功能很基础。完整的 wechat-admin 应该包含用户管理、消息记录、群管功能等。我建议你直接去 GitHub 搜 wechat-admin 找现成的项目,比如 cixingguangming5555/wechat-assistant 这类,它们通常有更完善的前后端。
跑起来之后,一般流程是:先启动脚本,扫码登录微信,然后浏览器打开 localhost:5000 就能在网页上查看消息、联系人,并手动发送消息了。自动回复的逻辑需要你自己在 @itchat.msg_register 装饰的函数里实现。
核心就两点:用 itchat-uos 挂住微信,用 Flask 提供 Web API 和页面。自己从头写挺麻烦的,建议基于开源项目改。
总结:用现成的 wechat-admin 项目更省事。
最好加上 “可能导致账号被封”的提示。。。
我觉得还是不要这么大张旗鼓的好。。。
#3 是怕被灭的节奏么? 说出你的故事~
好吧 原来 LZ 是 Dong 其实我就很好奇 为嘛这种出技术贴的公众号会被封 ~~
嗯,之前确实被封过一个号,要不然这篇前天就发出来了,这 2 天研究,总结了三点经验:
https://github.com/dongweiming/wechat-admin#如何解决当前登录环境异常为了你的帐号安全暂时不能登录 web 微信的问题
python 太法好
也是基于 web 微信抓包做的吗?可以唯一标志用户 id 吗?
支持下大佬。
大佬考虑去掉对 mysql 和 redis 的依赖吗… 感觉给别人用的话不太好交付
大佬工作不饱和哈哈哈,开个玩笑,很喜欢看大佬的博客
大佬给力
wxpy 实现了一个 puid,只要 bot.pkl 这个文件别删,理论上是可以唯一的。不过如果成员的某个属性变更会影响这个值。
前排支持
可以理解为给成员属性做了一次 md5 吗?那不同微信号的相同好友呢?
请问可以自动加群吗?
支持一下明哥
支持支持
楼主的代码风格不错,对这个项目应该是比较用心的
搭建好复杂的说
支持一下大佬,天气预报和笑话功能很成功
支持支持
扫码登陆的微信机器人,看这里 http://www.yunthink.cn
花里胡哨的牛



