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入门教程
Feb 08 Python
Python实现遍历数据库并获取key的值
May 17 Python
Python实现包含min函数的栈
Apr 29 Python
如何利用Fabric自动化你的任务
Oct 20 Python
Python读取excel中的图片完美解决方法
Jul 27 Python
Python3爬虫学习入门教程
Dec 11 Python
基于python2.7实现图形密码生成器的实例代码
Nov 05 Python
关于Python Tkinter Button控件command传参问题的解决方式
Mar 04 Python
Visual Studio Code搭建django项目的方法步骤
Sep 17 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 Python
python selenium 获取接口数据的实现
Dec 07 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 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连接Oracle数据库
2006/10/09 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
JS Timing
2007/04/21 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
JQuery遍历DOM节点的方法
2015/06/11 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
Vue组件化开发思考
2018/02/02 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
python列表生成器迭代器实例解析
2019/12/19 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
热能动力工程毕业生自荐信
2013/11/07 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书