利用python的wxpy模块实现微信的自动回复功能

1,797 阅读2分钟

Wxpy用来做什么

一些常见的场景

控制路由器、智能家居等具有开放接口的玩意儿 运行脚本时自动把日志发送到你的微信 加群主为好友,自动拉进群中 跨号或跨群转发消息 自动陪人聊天 逗人玩 ... 总而言之,可用来实现各种微信个人号的自动化操作

安装

wxpy 支持 Python 3.4-3.6,以及 2.7 版本

将下方命令中的 "pip" 替换为 "pip3" 或 "pip2",可确保安装到对应的 Python 版本中

1.从 PYPI 官方源下载安装 (在国内可能比较慢或不稳定):
pip install -U wxpy

2.从豆瓣 PYPI 镜像源下载安装 (推荐国内用户选用):
pip install -U wxpy -i "https://pypi.doubanio.com/simple/"

简单上手

登陆微信

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

找到好友:
#搜索名称含有“郭發龍”的男性湛江好友
my_friend = bot.friends().search('郭發龍',sex=MALE,city="湛江")[0]

发送消息:
#发送文本给好友
my_friend.send('hello weChat!')
#发送图片
my_friend.send_image('my_picture.jpg')

自动响应各类消息:
#打印来自其他好友,群聊和公众号的消息
@bot.register()
def print_others(msg):
      print(msg)

#回复my_friend的消息(优先匹配后注册的函数)
@bot.register(my_friend)
def reply_my_friend(msg):
      return  'received: {} ({})'.format(msg.text, msg.type)

#自动接受新的好友请求
@bot.register(msg_types=FRIENDS)
def auto_accept_friends(msg):
       #接受好友请求
       new_friend = msg.card.accept()
       #向新的好友发送消息
       new_friend.send('哈哈,我自动接受了你的好友请求')

保持登陆/运行:
#进入python命令行,让程序保持运行
embed()
#或者仅仅堵塞线程
#bot.join()

自动回复指定微信好友的信息

#encoding=utf-8
from wxpy import *

# cache_path保持登录,Bot初始化中可以加入参数:console_qr是否在控制台显示二维码 
bot = Bot(cache_path=True, console_qr=True,login_callback='loginSuccess')

#使用图灵机器人自动与指定好友聊天
#免费申请: http://www.tuling123.com/
tuling = Tuling(api_key='你在tuling网站申请的api_key')

# sex和city可以不输入,也可以仅通过他们进行好友的获取,结果为列表形式,所以我们通过[0]得到第一项
myfriend = bot.friends().search(u'郭發龍')[0]
myfriend1 = bot.self
print (myfriend)
 
@bot.register()
def reply_msg(msg):
    sender_username = msg.sender.raw['UserName']
    # 输出发送信息的好友或者群聊中的人员信息
    print(sender_username)
    # 判断是否和我设置的想要自动恢复到人一致如果一致调用tuling进行消息回复
    if sender_username == myfriend.raw['UserName']:
        #输出或得到的消息
        print(msg)
        #调用tuling机器人回复消息,并将消息赋值给message
        message = tuling.do_reply(msg)
        #输出回复消息的内容
        print(message)
 
#阻塞进程
bot.join()