为网友们分享了相关的编程文章,网友能意蕴根据主题投稿了本篇教程内容,涉及到python、WeChat、自动回复、详解python登录WeChat实现回复实例相关内容,已被300网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。
详解python登录WeChat实现回复实例
最近实现了一些微信的简单玩法 我们可以通过网页版的微信微信网页版,扫码登录后去抓包爬取信息,还可以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实现微信机器人: 登录微信、消息接收、自动回复功能
安装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'好的呀')
效果如下:
定义消息回复 @itchat.msg_register(itchat.content.TEXT) def text_reply(msg): return "【我是天才^_^】" + get_response(msg["Text"])["text"]
先导入两个包,没有的要先下载安装。直接命令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