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实现数通设备端口监控示例
Apr 02 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 Python
python语言中with as的用法使用详解
Feb 23 Python
python 中if else 语句的作用及示例代码
Mar 05 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
Python开启线程,在函数中开线程的实例
Feb 22 Python
python issubclass 和 isinstance函数
Jul 25 Python
python 字符串常用函数详解
Sep 11 Python
简单了解python元组tuple相关原理
Dec 02 Python
python分布式计算dispy的使用详解
Dec 22 Python
numba提升python运行速度的实例方法
Jan 25 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
基于php验证码函数的使用示例
2013/05/03 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
JavaScript 获取事件对象的注意点
2009/07/29 Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
[04:59]DOTA2-DPC中国联赛 正赛 Ehome vs iG 选手采访
2021/03/11 DOTA
python基础梳理(一)(推荐)
2019/04/06 Python
python绘制地震散点图
2019/06/18 Python
PyCharm导入python项目并配置虚拟环境的教程详解
2019/10/13 Python
pytorch实现用CNN和LSTM对文本进行分类方式
2020/01/08 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
I.T中国官网:精选时尚设计师单品网购平台
2018/03/26 全球购物
物业管理计划书
2014/01/10 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
2015年三万活动总结
2015/03/25 职场文书
禁毒主题班会教案
2015/08/14 职场文书
PHP命令行与定时任务
2021/04/01 PHP
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
MySQL创建表操作命令分享
2022/03/25 MySQL
SQL Server携程核心系统无感迁移到MySQL实战
2022/06/01 SQL Server
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS