最近在学python的过程中无意间发现一个python库:wxpy,其可以实现让微信自动接收、处理消息并进行回复的一系列功能。感觉挺有意思的,便自行摸索学习,并成功地实现了其功能,故写下此博客作学习分享。

1.安装wxpy

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

从PYPI 官方源下载安装:

pip install -U wxpy

从豆瓣 PYPI 镜像源下载安装:

pip install -U wxpy -i “https://pypi.doubanio.com/simple/

推荐国内用户使用镜像源下载安装,相比官方源更稳定,需要注意的是,若想确保安装到对应的 Python 版本中,命令中的 “pip” 替换为 “pip3” 或 “pip2”。

linux下还需安装pillow:

pip install pillow

2.申请一个图灵的APIKEY

需要去官网注册一个图灵机器人并获取APIKEY.(图灵机器人是一个中文语境下的对话机器人,可以使用免费版,一个账号最多可以创建5个机器人,一个机器人日调用接口数5000次)

官网地址:http://www.tuling123.com/

若觉得麻烦不想注册也可以,不需要APIKEY也可以实现简单的微信定时发送消息,简单回复等功能,如果想要智能化的自动回复功能,还是乖乖去注册吧。

3.用wxpy登录,发送和回复消息

登录

from wxpy import * # 导入模块

bot = Bot() # 初始化机器人,扫码登陆,但每次登陆都得重新扫码

bot = Bot(cache_path=True)

把登录信息保存下来,不想每次都扫码的可以用这一条

运行后会弹出微信登录的二维码,扫描后登录网页版微信

  1. 2.发送消息

friend = bot.friends().search(u’你好友的名字’)[0]

friend.send(u”哈哈”)

指定某个好友并向其发送消息

运行后会向指定好友发送所写的内容,可以在这个功能的基础上进一步实现定时向某人发送消息的功能。我发现一篇关于“教你用微信每天给女朋友说晚安”的文章,有兴趣可以看一下http://www.cnblogs.com/botoo/p/8622379.html

  1. 3.回复消息

@bot.register()

def reply_msg(msg):

msg.reply(u’本人正忙,请稍后回复’)

embed()

当好友向你发送消息后就会得到统一回复“本人正忙,请稍后回复”。

4.调用图灵机器人API,实现自动回复

from wxpy import * #导入模块

bot = Bot(cache_path=True)#扫码登陆

tuling = Tuling(api_key=’自行输入’)#初始化图灵机器人

@bot.register(msg_types=TEXT)

def auto_reply_all(msg):

tuling.do_reply(msg)

自动回复功能,回复所有消息

bot.join()#开始运行

以下即为我运行成功自动回复的结果

关于用图灵的APIKEY来实现自动回复的文章我还收藏了几篇

https://blog.csdn.net/getcomputerstyle/article/details/70175167

https://blog.csdn.net/lin_zhongmu/article/details/77429181

https://blog.csdn.net/qq_36313726/article/details/78572086

5.关于可能出现的错误

  1. 我在实现微信自动回复的过程中也不是一帆风顺的,在安装好wxpy,做好前期准备后,运行程序时出现ImportError: No module named 'wxpy'的错误,找了很久总是找不到解决方法,最后才在该文中找到解决方案:[https://blog.csdn.net/damotiansheng/article/details/43916881](https://blog.csdn.net/damotiansheng/article/details/43916881)

我把自己做的py文件放到 site_packages 目录下,直接运行,成功地解决了问题。

  1. 还有就是关于'sudo'不是内部或外部命令,也不是可运行的程序或批处理文件的错误,该文也给出了解决方案:

http://www.zhimengzhe.com/windows/62640.html

6.关于wxpy的一些文章

https://www.jianshu.com/p/c0baf3c6db15

https://www.jianshu.com/p/ef75e97146c2

http://blog.sina.com.cn/s/blog_14c3c70df0102whkp.html

需要注意的是不知道用微信机器人会不会有被封号的危险,所以建议大家用小号。

关于Python构造机器人的学习分享就到这里,对于Python的学习,今后还会不定时更新,和我一样在自学Python的小伙伴可以关注一波,互相激励。【20180804】Python 微信机器人 - 图1