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中文件遍历的两种方法
Jun 16 Python
python多进程操作实例
Nov 21 Python
Django REST为文件属性输出完整URL的方法
Dec 18 Python
pycharm 主题theme设置调整仿sublime的方法
May 23 Python
对python 自定义协议的方法详解
Feb 13 Python
Python切片操作去除字符串首尾的空格
Apr 22 Python
python获取当前文件路径以及父文件路径的方法
Jul 10 Python
python 扩展print打印文件路径和当前时间信息的实例代码
Oct 11 Python
详解python中eval函数的作用
Oct 22 Python
Python之Numpy的超实用基础详细教程
Oct 23 Python
Pytorch 实现冻结指定卷积层的参数
Jan 06 Python
keras 特征图可视化实例(中间层)
Jan 24 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防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
用js来解决ajax读取页面乱码
2010/11/28 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
go和python调用其它程序并得到程序输出
2014/02/10 Python
python实现跨文件全局变量的方法
2014/07/07 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
python调用接口的4种方式代码实例
2019/11/19 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
采用怎样的方法保证数据的完整性
2013/12/02 面试题
Javascript如何发送一个Ajax请求
2015/01/26 面试题
学年自我鉴定范文
2013/10/01 职场文书
初一生物教学反思
2014/01/18 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
2014年技术部工作总结
2014/12/12 职场文书
2015毕业寄语大全
2015/02/26 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
python 命令行传参方法总结
2021/05/25 Python
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server