python实现微信机器人: 登录微信、消息接收、自动回复功能


Posted in Python onApril 29, 2019

安装wxpy

pip install -U wxpy

登录微信

# 导入模块
from wxpy import *
# 初始化机器人,扫码登陆
bot = Bot()

运行以上代码,会生成一个二维码,通过图片扫描二维码即可登录微信。

如果是在服务器上运行代码,无法显示图片的时候, 可以选择通过终端显示二维码图片, 只需要将代码改成:

from wxpy import *
bot = Bot(console_qr=True)

运行的效果如下:

python实现微信机器人: 登录微信、消息接收、自动回复功能

当然,为了安全,这个二维码做了模糊处理

如果你认为每次都需要扫描二维码很麻烦,可以启用缓存,来保存自己的登录状态:

bot = Bot(console_qr=True, cache_path=True)

 发送消息

首先我们尝试给自己和文件传输助手发消息:

# 给机器人自己发送消息
bot.self.send('Hello World!')
# 给文件传输助手发送消息
bot.file_helper.send('Hello World!')

自动回复

可通过 预先注册 的方式,实现消息的自动处理。

“预先注册” 是指

预先将特定聊天对象的特定类型消息,注册到对应的处理函数,以实现自动回复等功能。

注册消息

提示

每当收到新消息时,将根据注册规则找到匹配条件的执行函数。
并将 消息对象 作为唯一参数传入该函数。

将 Bot.register() 作为函数的装饰器,即可完成注册。

# 获取所有类型的消息(好友消息、群聊、公众号,不包括任何自己发送的消息)
# 并将获得的消息打印到控制台
@bot.register()
def print_others(msg):
  print(msg)

同时wxpy也可以给注册消息的类型加上限制,

# 回复 my_friend 发送的消息
@bot.register(my_friend)
def reply_my_friend(msg):
  return 'received: {} ({})'.format(msg.text, msg.type)
 
# 回复发送给自己的消息,可以使用这个方法来进行测试机器人而不影响到他人
@bot.register(bot.self, except_self=False)
def reply_self(msg):
  return 'received: {} ({})'.format(msg.text, msg.type)
 
# 打印出所有群聊中@自己的文本消息,并自动回复相同内容
# 这条注册消息是我们构建群聊机器人的基础
@bot.register(Group, TEXT)
def print_group_msg(msg):
  if msg.is_at:
    print(msg)
    msg.reply(meg.text)

我们设置一个自动回复所有消息的功能:

@bot.register()
def reply_self(msg):
  # return 'received: {} ({})'.format(msg.text, msg.type)
  msg.reply(u'好的呀')

效果如下:

python实现微信机器人: 登录微信、消息接收、自动回复功能

以上所述是小编给大家介绍的python实现微信机器人: 登录微信、消息接收、自动回复功能详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
通过实例浅析Python对比C语言的编程思想差异
Aug 30 Python
python3+PyQt5实现柱状图
Apr 24 Python
python制作填词游戏步骤详解
May 05 Python
django一对多模型以及如何在前端实现详解
Jul 24 Python
对python中的装包与解包实例详解
Aug 24 Python
python实现H2O中的随机森林算法介绍及其项目实战
Aug 29 Python
使用IDLE的Python shell窗口实例详解
Nov 19 Python
python批量处理txt文件的实例代码
Jan 13 Python
Pytorch转tflite方式
May 25 Python
python如何写try语句
Jul 14 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 Python
Python操作dict时避免出现KeyError的几种解决方法
Sep 20 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 #Python
python实现微信每日一句自动发送给喜欢的人
Apr 29 #Python
详解【python】str与json类型转换
Apr 29 #Python
python实现给微信指定好友定时发送消息
Apr 29 #Python
python使用wxpy实现微信消息防撤回脚本
Apr 29 #Python
Django Sitemap 站点地图的实现方法
Apr 29 #Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
Apr 29 #Python
You might like
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
jQuery简单操作cookie的插件实例
2016/01/13 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
微信小程序实现左右列表联动
2020/05/19 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
javascript canvas封装动态时钟
2020/09/30 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
复制粘贴功能的Python程序
2008/04/04 Python
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
python控制台英汉汉英电子词典
2020/04/23 Python
用Python创建声明性迷你语言的教程
2015/04/13 Python
Django自定义认证方式用法示例
2017/06/23 Python
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
python实现Windows电脑定时关机
2018/06/20 Python
python多进程间通信代码实例
2019/09/30 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
Python Selenium截图功能实现代码
2020/04/26 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
6PM官网:折扣鞋、服装及配饰
2018/08/03 全球购物
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
应用心理学个人求职信范文
2013/12/11 职场文书
政治思想表现评语
2014/05/04 职场文书
MySQL分区表实现按月份归类
2021/11/01 MySQL