转自:https://wxpy.readthedocs.io/zh/latest/index.html
-
微信机器人 / 可能是最优雅的微信个人号 API
- wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展
注意
强烈建议仅使用小号运行机器人!
从近期 (17年6月下旬) 反馈来看,使用机器人存在一定概率被限制登录的可能性。
主要表现为无法登陆 Web 微信 (但不影响手机等其他平台)。
项目主页
https://github.com/youfou/wxpy
用来干啥
一些常见的场景
- 控制路由器、智能家居等具有开放接口的玩意儿
- 运行脚本时自动把日志发送到你的微信
- 加群主为好友,自动拉进群中
- 跨号或跨群转发消息
- 自动陪人聊天
- 逗人玩
- ...
总而言之,可用来实现各种微信个人号的自动化操作
轻松安装
wxpy 支持 Python 3.4-3.6,以及 2.7 版本
将下方命令中的 “pip” 替换为 “pip3” 或 “pip2”,可确保安装到对应的 Python 版本中
- 从 PYPI 官方源下载安装 (在国内可能比较慢或不稳定):
pip install -U wxpy
- 从豆瓣 PYPI 镜像源下载安装 (推荐国内用户选用):
pip install -U wxpy -i "https://pypi.doubanio.com/simple/"
简单上手
登陆微信:
# 导入模块
from wxpy import *
# 初始化机器人,扫码登陆 bot = Bot()
找到好友:
# 搜索名称含有 "游否" 的男性深圳好友
my_friend = bot.friends().search('游否', sex=MALE, city="深圳")[0]
发送消息:
# 发送文本给好友
my_friend.send('Hello WeChat!') # 发送图片 my_friend.send_image('my_picture.jpg')
自动响应各类消息:
# 打印来自其他好友、群聊和公众号的消息
@bot.register()
def print_others(msg): print(msg) # 回复 my_friend 的消息 (优先匹配后注册的函数!) @bot.register(my_friend) def reply_my_friend(msg): return 'received: {} ({})'.format(msg.text, msg.type) # 自动接受新的好友请求 @bot.register(msg_types=FRIENDS) def auto_accept_friends(msg): # 接受好友请求 new_friend = msg.card.accept() # 向新的好友发送消息 new_friend.send('哈哈,我自动接受了你的好友请求')
保持登陆/运行:
# 进入 Python 命令行、让程序保持运行
embed()
# 或者仅仅堵塞线程
# bot.join()
模块特色
-
全面对象化接口,调用更优雅
-
默认多线程响应消息,回复更快
-
包含 聊天机器人、共同好友 等 实用组件
-
只需两行代码,在其他项目中 用微信接收警告
-
愉快的探索和调试,无需涂涂改改
-
可混合使用 itchat 的原接口
-
当然,还覆盖了各类常见基本功能:
- 发送文本、图片、视频、文件
- 通过关键词或用户属性搜索 好友、群聊、群成员等
- 获取好友/群成员的昵称、备注、性别、地区等信息
- 加好友,建群,邀请入群,移出群
更新日志
https://github.com/youfou/wxpy/releases
文档目录
- 机器人对象
- 初始化/登陆
- 获取聊天对象
- 搜索聊天对象
- 加好友和建群
- 其他
- 控制多个微信 (多开)
- 聊天对象
- 各类型的继承关系
- 基本聊天对象
- 单个聊天对象
- 好友
- 群聊
- 公众号
- 聊天对象合集
- 消息处理
- 消息对象
- 自动处理消息
- 已发送消息
- 历史消息
- 用微信监控你的程序
- 获得专用 Logger
- 加入到现有的 Logger
- 指定接收者
- 愉快的探索和调试
- 使用 embed()
- 使用 wxpy 命令
- 实用组件
- 聊天机器人
- 查找共同好友
- 确保查找结果的唯一性
- 在多个群中同步消息
- 检测频率限制
- 忽略 ResponseError 异常
- 异常处理
- 异常的抛出和捕捉
- 已知错误码
- itchat 与原始数据
- 使用 itchat 的原接口
- 使用原始数据
- 必看: 常见问题 FAQ
- 启动后马上退出了?
- 每次登陆都要扫码?
- 可以在 Linux 中使用吗?
- 支持 红包、转账、朋友圈… 吗?
- 为什么要开发 wxpy?