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 相关文章推荐
python3编写C/S网络程序实例教程
Aug 25 Python
python清除字符串里非字母字符的方法
Jul 02 Python
Python自动扫雷实现方法
Jul 25 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
Python内置数据类型list各方法的性能测试过程解析
Jan 07 Python
python3爬取torrent种子链接实例
Jan 16 Python
浅析python标准库中的glob
Mar 13 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
python连接mysql有哪些方法
Jun 24 Python
Python中Selenium对Cookie的操作方法
Jul 09 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实现批量上传单个文件
2015/12/29 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
jQuery学习笔记[1] jQuery中的DOM操作
2010/12/03 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
Javascript函数的参数
2015/07/16 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
jQuery中ScrollTo用法示例
2016/09/04 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
python 截取 取出一部分的字符串方法
2017/03/01 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
表扬信范文
2015/05/04 职场文书
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
移除Selenium中window.navigator.webdriver值
2022/06/10 Python