python实现微信机器人: 登录微信、消息接收、自动回复功能

 更新时间:2019年04月29日 16:21:00   作者:harleylau  
这篇文章主要介绍了python实现微信机器人: 登录微信、消息接收、自动回复功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

安装wxpy

pip install -U wxpy

登录微信

# 导入模块
from wxpy import *
# 初始化机器人,扫码登陆
bot = Bot()

运行以上代码,会生成一个二维码,通过图片扫描二维码即可登录微信。

如果是在服务器上运行代码,无法显示图片的时候, 可以选择通过终端显示二维码图片, 只需要将代码改成:

from wxpy import *
bot = Bot(console_qr=True)

运行的效果如下:

当然,为了安全,这个二维码做了模糊处理

如果你认为每次都需要扫描二维码很麻烦,可以启用缓存,来保存自己的登录状态:

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实现微信机器人: 登录微信、消息接收、自动回复功能详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 让Django的BooleanField支持字符串形式的输入方式

    让Django的BooleanField支持字符串形式的输入方式

    这篇文章主要介绍了让Django的BooleanField支持字符串形式的输入方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python Poetrya项目依赖管理安装使用详解

    Python Poetrya项目依赖管理安装使用详解

    这篇文章主要为大家介绍了Python Poetrya项目依赖管理安装使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • python的turtle库使用详解

    python的turtle库使用详解

    在本篇文章里小编给大家分享了关于python的turtle库相关知识点以及使用方法,需要的朋友们跟着学习下。
    2019-05-05
  • 浅谈tensorflow中几个随机函数的用法

    浅谈tensorflow中几个随机函数的用法

    今天小编就为大家分享一篇浅谈tensorflow中几个随机函数的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 详解Python自建logging模块

    详解Python自建logging模块

    本篇文章给大家详细分析了Python自建logging模块的方法和代码分享,有需要的朋友参考学习下吧。
    2018-01-01
  • Python subprocess.Popen 实时输出 stdout的解决方法(正确管道写法)

    Python subprocess.Popen 实时输出 stdout的解决方法(正确管道写法)

    这篇文章主要介绍了Python subprocess.Popen实时输出stdout正确管道写法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • python服务器中发送外部请求的基本步骤

    python服务器中发送外部请求的基本步骤

    在Python中,服务器发送外部请求是一个常见的操作,尤其是在需要集成不同服务或API时,有多种库可以帮助你完成这项任务,但最流行和广泛使用的库之一是requests,下面给大家分享python服务器中发送外部请求的基本步骤,感兴趣的朋友一起看看吧
    2024-08-08
  • python如何获取列表中每个元素的下标位置

    python如何获取列表中每个元素的下标位置

    这篇文章主要介绍了python如何获取列表中每个元素的下标位置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • pygame播放视频并实现音视频同步的解决方案

    pygame播放视频并实现音视频同步的解决方案

    本篇提供了pygame播放视频的两个方案,第一个方案是网上找的现成的,第二个方案则是参考了opencv(主流方案)自己逆向思维做的,还未经过实际验证,感兴趣的朋友跟随小编一起看看吧
    2023-11-11
  • Python的numpy库下的几个小函数的用法(小结)

    Python的numpy库下的几个小函数的用法(小结)

    这篇文章主要介绍了Python的numpy库下的几个小函数的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论