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利用MethodType绑定方法到类示例代码
Aug 27 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
Sep 11 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
Python将多个excel表格合并为一个表格
Feb 22 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
python使用__slots__让你的代码更加节省内存
Sep 05 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
python接口自动化(十六)--参数关联接口后传(详解)
Apr 16 Python
Python交互式图形编程的实现
Jul 25 Python
Tensorflow 多线程设置方式
Feb 06 Python
如何利用python发送邮件
Sep 26 Python
python自动化发送邮件实例讲解
Jan 04 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 全角转半角实现代码
2010/05/16 PHP
实用PHP会员权限控制实现原理分析
2011/05/29 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
Python学习资料
2007/02/08 Python
Django验证码的生成与使用示例
2017/05/20 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
解决pyinstaller打包pyqt5的问题
2019/01/08 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
pygame实现弹球游戏
2020/04/14 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
民政局个人整改措施
2014/09/24 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
护士年终个人总结
2015/02/13 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL