当前位置:主页 > python教程 > 详解python登录WeChat实现回复实例

python登录WeChat微信实现自动回复功能讲解

发布:2019-05-30 13:59:25 36


为网友们分享了相关的编程文章,网友能意蕴根据主题投稿了本篇教程内容,涉及到python、WeChat、自动回复、详解python登录WeChat实现回复实例相关内容,已被300网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

详解python登录WeChat实现回复实例

488

最近实现了一些微信的简单玩法 我们可以通过网页版的微信微信网页版,扫码登录后去抓包爬取信息,还可以post去发送信息。

》》安装itchat这个库     pip install itchat

先来段简单的试用,实现微信的登录,运行下面代码会生成一个二维码,扫码之后手机端确认登录,就会发送一条信息给‘filehelper',这个filehelper就是微信上的文件传输助手。

import itchat

# 登录
itchat.login()
# 发送消息
itchat.send(u'你好鸭!', 'filehelper')

它会给这个文件传输助手自动发送你好鸭!

除了登录和发送消息我们还可以这么来玩,往下走~

》》实现微信好友男女比例

想统计下自己微信里好友的性别比例,当然也是很简单,先获取好友列表,统计列表里性别计数

import itchat

# 先登录
itchat.login()

# 获取好友列表
friends = itchat.get_friends(update=True)[0:]

# 初始化计数器,有男有女,当然,有些人是不填的
male = female = other = 0

# 遍历这个列表,列表里第一位是自己,所以从"自己"之后开始计算
# 1表示男性,2女性
for i in friends[1:]:
 sex = i["Sex"]
 if sex == 1:
 male += 1
 elif sex == 2:
 female += 1
 else:
 other += 1

# 总数算上,好计算比例啊~
total = len(friends[1:])

# 好了,打印结果
print (u"男性好友:%.2f%%" % (float(male) / total * 100))
print (u"女性好友:%.2f%%" % (float(female) / total * 100))
print (u"其他:%.2f%%" % (float(other) / total * 100))
 

运行结果:

》》实现微信自动回复

接着来实现一个类似qq上的自动回复,原理就是接收到消息,就发消息回去,同时发一条给文件助手,就可以在文件助手中统一查看消息。

代码很简单,来看看

#coding=utf8
import itchat

# 自动回复
# 封装好的装饰器,当接收到的消息是Text,即文字消息
@itchat.msg_register('Text')
def text_reply(msg):
 # 当消息不是由自己发出的时候
 if not msg['FromUserName'] == myUserName:
 # 发送一条提示给文件助手
 itchat.send_msg(u"[%s]收到好友@%s 的信息:%s\n" %
   (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(msg['CreateTime'])),
    msg['User']['NickName'],
    msg['Text']), 'filehelper')
 # 回复给好友
 return u'[自动回复]您好,我现在有事不在,一会再和您联系。\n已经收到您的的信息:%s\n' % (msg['Text'])

if __name__ == '__main__':
 itchat.auto_login()

 # 获取自己的UserName
 myUserName = itchat.get_friends(update=True)[0]["UserName"]
 itchat.run()
 

运行后会保持登录状态,开启自动回复模式,手机上查看:

 

当然,除了文字Text信息,还可以接收图片(表情包算图片),语音,名片,地理位置,分享和类型为Note的信息(就是有人提示类的消息,例如撤回消息),把装饰器写成下面形式即可实现

@itchat.msg_register(['Map', 'Card', 'Note', 'Sharing', 'Picture','Text'])

 

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

737

安装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'好的呀')

效果如下:


参考资料

相关文章

  • python3.7环境下sanic-ext未生效踩坑解析

    发布:2023-04-26

    这篇文章主要为大家介绍了python3.7环境下sanic-ext未生效踩坑解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Python 稀疏矩阵中sparse存储和转换实例讲解

    发布:2021-04-27

    这篇文章主要介绍了Python 稀疏矩阵-sparse 存储和转换的相关资料,需要的朋友可以参考下


  • python线程里哪种模块比较适合

    发布:2022-09-07

    给大家整理了关于python 线程的教程,在本篇文章里我们给大家整理了关于python线程里哪种模块比较适合的相关知识点,需要的朋友们可以学习下。


  • 使用python实现抖音表白

    发布:2020-03-11

    这篇文章主要为大家详细介绍了python抖音表白程序源代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • 实例分析Python多进程池 multiprocessing Pool的使用

    发布:2020-03-05

    这篇文章主要介绍了Python多进程池 multiprocessing Pool用法,结合实例形式分析了多进程池 multiprocessing Pool相关概念、原理及简单使用技巧,需要的朋友可以参考下


  • Python抓取网页图片难点分析

    发布:2023-03-04

    没想到python是如此强大,令人着迷,以前看见图片总是一张一张复制粘贴,现在好了,学会python就可以用程序将一张张图片,保存下来。今天网上冲浪看到很多美图,可是图片有点多,不想一张一张地复制粘贴,怎么办呢?办法总是有的,即便没有我们也可以创造一个办法


  • python中变量默认的类型总结

    发布:2020-05-21

    python中的变量默认是什么类型呢?还有很多新手不太明白。下面小编就为大家介绍一下python中的变量默认是什么类型。一起跟随小编过来看看吧


  • 5个Python杀手级的自动化脚本分享

    发布:2023-04-28

    Python是一种功能强大的语言,广泛用于自动执行各种任务,只要想通过自动化日常任务来节省时间的人,Python 都能满足您的需求。本文整理了5个Python脚本,希望对大家有所帮助


网友讨论

网友NO.40501
网友NO.40501

定义消息回复 @itchat.msg_register(itchat.content.TEXT) def text_reply(msg): return "【我是天才^_^】" + get_response(msg["Text"])["text"]

网友NO.37089
网友NO.37089

先导入两个包,没有的要先下载安装。直接命令pip install itchat,不出意外就OK。 import itchat import requests 然后定义一个向图灵机器人发送消息并接受机器人回复的消息,并将从图灵机器人接受到的消息return返回。 def get_response(_info): print(_info) # 从好友发过来的消息 api_url = '/openapi/api' # 图灵机器人网址 data = { 'key': '485712b8079e44e1bc4af10872b08319', # 如果这个 apiKey 如不能用,那就注册一次 'info': _info, # 这是我们从好友接收到的消息 然后转发给图灵机器人 'userid': 'wechat-robot', # 这里你想改什么都可以 } r = requests.post(api_url, data=data).json() # 把data数据发 print(r.get('text')) # 机器人回复给好友的消息 return r