Python中如何使用wxpy优雅地实现微信个人号机器人/API
wxpy: 用 Python 玩微信
优雅的微信个人号 机器人 /API ,基于 itchat ,全面优化接口,更有 Python 范儿
用来干啥
一些常见的场景
- 控制路由器、智能家居等具有开放接口的玩意儿
- 跑脚本时自动把日志发送到你的微信
- 加群主为好友,自动拉进群中
- 充当各种信息查询
- 转发消息
- 逗人玩
- ...
# 脑洞太大的就不提了...
总而言之,可用来实现各种微信个人号的自动化操作
轻松安装
使用 Python 3.x
pip3 install -U wxpy
简单上手
登陆微信:
# 导入模块
from wxpy import *
# 初始化机器人,扫码登陆
robot = Robot()
找到好友:
# 搜索名称含有 "游否" 的男性深圳好友
my_friend = robot.friends().search('游否', sex=MALE, city="深圳")[0]
发送消息:
# 发送文本给好友
robot.my_friend.send('Hello WeChat!')
# 发送图片
robot.my_friend.send_image('my_picture.jpg')
自动响应各类消息:
# 打印来自其他好友、群聊和公众号的消息
[@robot](/user/robot).register()
def print_others(msg):
print(msg)
回复 my_friend 的消息 (优先匹配后注册的函数!)
@robot.register(my_friend)
def reply_my_friend(msg):
return ‘received: {} ({})’.format(msg.text, msg.type)
开始监听和自动处理消息
robot.start()
模块特色
- 全面对象化接口,调用更优雅
- 默认多线程响应消息,回复更快
- 附带 共同好友、图灵机器人 等实用组件
- 覆盖大部分常用功能:
- 发送文本、图片、视频、语音、文件
- 通过关键词或用户属性搜索 好友、群聊、群成员 等
- 获取好友 /群成员昵称、备注、性别、地区
- 加好友,建群,邀请进群,踢出群
了解更多
说明文档: http://wxpy.readthedocs.io
加入讨论
GitHub: https://github.com/youfou/wxpy
加入微信交流群 (真的是群哦)
- 加以下微信,填写验证 [ wxpy ],即可自动受邀入群

Python中如何使用wxpy优雅地实现微信个人号机器人/API
已 star 。
以前也想做一个类似可以挂群里的机器人,但是微信必须保持手机同时在线不然会掉,有点烦。
已 star 感觉不错⊙▽⊙
这个确实无解,反正我是拿备用机登的…
诶等等,真的可以发送语音了么?我记得 itchat 还有各路利用网页端 API 开发的都不支持耶。
抱歉,才发现文档错了,不支持语音发送,只能接收语音…
帖子已经无法修改,已在 doc source 中修
不错,之前做了 java 版的但是功能不全, star
已 star
我一直以为是 api 限制呢,原来是要手机在线。。
mark
赞。已 star
登入好像有些问题哦<br>json.decoder.JSONDecodeError: Unterminated string starting at: line 6505 column 13 (char 120732)<br>
看上去是在解析一个很长的 JSON … 这个问题会反复出现吗?
不介意的话可以贴下完整的 traceback 哈。
wxpy -> 微信 pao 友
微信屁眼……
我这里有一些 itchat 的用例,有一些只需要修改变量就可以直接使用了,比如直接加群主填写特定验证信息自动邀请加群的。
https://github.com/discountry/itchat-examples
希望楼主有空研究研究怎么处理红包或其他特殊类消息。
顺道发个 go 版本的
https://github.com/songtianyi/wechat-go
我自己用来撩骚,开开车 发发 gif, 美剧更新提醒等等 :)
https://github.com/songtianyi/go-aida
这个是个人微信?
我第一眼还以为是微信公众号呢
如果能 py2 就好了。。
wxpy 就是基于 itchat 开发的,是它的一层接口封装,希望提供更好用的接口哈
正好试试 Python 3 吧,我也是用了两年 py2 后下决心升级到 3 的,还是有不少提升的
对 py3 ,不是很感兴趣,因为我现在好多东西不会做,py3 只是添加了一个异步,如何高性能而已
搭车发个 PHP 版本的 https://www.v2ex.com/t/335534
py 交易利器
可以搞个双开 APP ,一天开一下小号就行
无责任推荐双开工具: http://parallel-app.com/
既然用的还不多,可以考虑直接切到 3 嘛,将来会有更多项目迁移到 3 ,很多新项目也是直接从 3 开始
嗯 我就是用的他双开,只是习惯性的用完就杀掉了,所以过两三天 bot 就没反应了
关注~
发现这个帖子都是收藏,回复很少,自己顶顶…😢
再顶~ 顺带说下,二维码中的小机器人已经开启了被调戏功能…
谢谢,果然是要抓包,我目前就是还不知道如何通过 tcpdump/wireshark 抓包,然后把信息实时更新到自己的程序里,谢谢。
厉害了,加人,加群还能自动化,好玩
抓包不是只抓数据,而是通过观察流量摸索协议,有了协议,就可以通过自己的方式获取数据啦
网页抓包 还是直接用浏览器的开发者工具吧
我也弄了个 WebQQ 不过 tody.ml/webqq/ 用来做广西联通流量自动充值。
朋友圈的功能不知道什么时候弄得到
赞,已 star
已 star
好奇,基于 itchat 的优化为何没 pr 回去呀?
导入 itchat ,而不是直接修改 itchat 的代码。而且也修改了很多接口,很难合入原项目,所以才另立项目呢。
另外结合 hug 可实现 api 接口了,这样通用性更好,可以给其他服务调用,非常简洁
哈哈我去了解下 hug ,业余 Pythoner
这个还真无解, Web 微信一直没有朋友圈功能。考虑到产品定位,估计以后也不会有…
同样业余,我是做 java ,封装成 api 几行代码就搞定了,一条消息可以群发给多个人的实现方法
.get(’/send_msg’)
def private_msg(content, username:hug.types.text=“filehelper”):
nameArr = username.split()
name = ‘’;
for i in range(len(nameArr)):
name = nameArr[i]
print(“users:{name} content : {content}”.format(**locals()))
itchat.send_msg(content, toUserName=name)
return ‘{“result”:1}’
最近正好在想怎么通过 web 来方便远程登陆 /控制微信机器人
有其他协议的研究么?网上看了其他其他协议,都需要收费。我想找一个其他协议的开源代码,参考一下。


