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使用cx_Oracle模块将oracle中数据导出到csv文件的方法
May 16 Python
Python实时获取cmd的输出
Dec 13 Python
详解Python字符串对象的实现
Dec 24 Python
Python实现代码统计工具(终极篇)
Jul 04 Python
关于Python中Inf与Nan的判断问题详解
Feb 08 Python
根据DataFrame某一列的值来选择具体的某一行方法
Jul 03 Python
pyqt5 获取显示器的分辨率的方法
Jun 18 Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 Python
对Tensorflow中Device实例的生成和管理详解
Feb 04 Python
如何基于pandas读取csv后合并两个股票
Sep 25 Python
Python 带星号(* 或 **)的函数参数详解
Feb 23 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 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
mysql 字段类型说明
2007/04/27 PHP
PHP执行速率优化技巧小结
2008/03/15 PHP
PHP DataGrid 实现代码
2009/08/12 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
php实现删除空目录的方法
2015/03/16 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
jquery ui resizable bug解决方法
2010/10/26 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
Python socket编程实例详解
2015/05/27 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
HTML5的语法变化介绍
2013/08/13 HTML / CSS
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
悬挂训练绳:TRX
2017/12/14 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
进程的查看和调度分别使用什么命令
2015/03/25 面试题
旷课检讨书3000字
2014/02/04 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
个人先进事迹总结
2015/02/26 职场文书
运动会运动员赞词
2015/07/22 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS