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 sort、sorted高级排序技巧
Nov 21 Python
python实现指定字符串补全空格的方法
Apr 30 Python
python类继承用法实例分析
May 27 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
浅谈numpy库的常用基本操作方法
Jan 09 Python
python实现俄罗斯方块
Jun 26 Python
Python字典遍历操作实例小结
Mar 05 Python
Python read函数按字节(字符)读取文件的实现
Jul 03 Python
Pycharm 2020年最新激活码(亲测有效)
Sep 18 Python
python标识符命名规范原理解析
Jan 10 Python
Python多进程编程常用方法解析
Mar 26 Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 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
5.PHP的其他功能
2006/10/09 PHP
剖析 PHP 中的输出缓冲
2006/12/21 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
javascript事件模型介绍
2016/05/31 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
JS中如何轻松遍历对象属性的方式总结
2019/08/06 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
python使用配置文件过程详解
2019/12/28 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
护士演讲稿范文
2014/01/05 职场文书
暑期实践思想汇报
2014/01/06 职场文书
《绿色蝈蝈》教学反思
2014/03/02 职场文书
实用的简历自我评价
2014/03/06 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
建筑投标担保书
2014/05/20 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
国富论读书笔记
2015/06/26 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery