Python 微信机器人
1.微信库选择
python关于开发微信的库主要有itchat
和wxpy
,而wxpy
底层是调用的itchat
,所以如果你只是要使用的话建议使用wxpy
库,它比其他的库都要优雅,更面向对象,而且深度整合了图灵机器人
和小i机器人
;而itchat
扩展性更好,如果你想自己开发一个自己的微信库那建议选itchat
。
2.实现原理
我相信有不少同学使用过微信的网页版,而wxpy
(底层使用itchat
)库就是模拟登录网页端,然后调用微信的api实现操作的,我们可以查看itchat
源码发现。
总之大家记住,目前wxpy
和itchat
都是模拟网页版微信来操作的。
3.图灵机器人
既然可以模拟网页微信了,那又如何做到自动回复呢?这里我们就使用到了图灵机器人
,大家可以在他们的官网(http://www.tuling123.com)免费注册账号,然后申请一个免费的机器人,每个人最多免费申请五个机器人。
我会在项目代码中给一个默认的apikey,让大家不用申请机器人就可以直接运行项目,但是猪哥还是建议同学自己去申请,因为这个默认的apikey有调用次数限制,况且这算是一笔免费的财富呢!
4.整体流程
为了方便大家理解,猪哥给大家画了一个时序图
二、项目代码
先来张项目结构图压压惊:
1.下载项目
猪哥已经把项目放在了GitHub上,群里有小伙伴反馈不会使用github,这里我就详细讲一下如何从github上下载项目。
注意:github与git不是同一个东西,github是全球最大的同性恋交友论坛,在这里我们不比颜值与财富,只比谁的项目
star
多,star越多也就说明你越吸引同性的喜欢与爱慕,甚至连你的同事也会爱上你!而git是项目管理工具,github上的项目就是用git来管理,项目管理工具另一派系是svn。
首先找到你需要下载的项目,然后点击Clone or download
,然后点击右侧的复制按钮,猪哥这个项目的地址是:https://github.com/pig6/wxrobot
然后打开你的pycharm,选择CSV
->Checkout from version control
->git
,然后粘贴刚才复制的项目链接。
最后pycharm可能会提示你使用 新窗口打开 还是用 当前窗口 打开,猪哥一般习惯使用 新窗口(New Window) 打开,这样可以避免多个项目开发时造成混乱。
这个好像你电脑得安装Git :https://git-scm.com/download/win
2.下载wxpy库
项目下载下来之后,因为没有安装必须的库wxpy
,pycharm可能会有如下提示,这时我们点一下install就可以。
如果没有出现安装库提示的话,我们可以在Setting
->Project
->Project Interpreter
里面添加wxpy
库。
或者使用以下命令安装wxpy库,如果你是pip3则替换下面的pip。
pip install -U wxpy -i “https://pypi.doubanio.com/simple/“
3.运行项目
你可以按右上角的绿色三角形按钮,也可以右键项目然后点击run
。
运行之后弹出登录二维码,手机微信扫一扫点击确定登录即可和好友聊天。
三、总结
首先感谢大家的耐心阅读,考虑到有很多零基础的同学所以文章有点长。
猪哥来总结下这几天使用wxpy
库开发微信机器人的一些感受吧!
-
猪哥用自己的大号测试了一周,也没有出现被封的迹象,只要不发送大量的相同信息就没问题
-
即使出现被封也只是会限制你微信登录网页版,手机端不影响使用,正常使用大概一两周就自动解封
-
最好用小号测试,据说2018年及以后注册的微信号都不可以登微信网页版,也就是说不能用测试
-
微信网页版有些功能被阉割了,比如:添加好友,拉人入群等,因为怕微商使用机器人到处作恶所以才阉割
-
目前只开发了一个功能,先让大家入门,后面的功能会慢慢丰富起来
-
目前wxpy基于微信网页登录,很多功能无法实现,后期考虑跟换成iPad登录
-
图灵机器人智商有待提高
接收群消息 请看下图
过滤有用群消息
能接收到群消息之后,我们如何过滤我们需要的消息呢?这里我们可以在接收到群消息后比较下这个群是不是我们需要监听的群,然后再比较当前消息发送者在不在我们要监听的对象中,如果两者都满足便实现了消息过滤。
在配置文件中指定需要监听人的名称(最好是备注名,防止微信昵称重名)和需要监听的群
根据配置需要监听的群和人去过滤群消息
转发有用群消息
在我们拿到有用群消息后,我们如何保存这些信息呢?有很多种保存信息的方式,你可以存文件,存数据库,也可以选择转发。这里猪哥就选择将信息转发,这样有几个优点:简单、实时、永久保存。
那转发给谁?你可以转发到指定好友或者文件助手都行,在猪哥的代码中是转发到机器人管理员那里,如果你没有设置管理员那么就转发到文件助手中。
管理员设置技巧:如果你用小号登录机器人,那么你可以设置你的大号为管理员;如果你没有小号用自己的大号登录,那这个你就空着默认就设置文件助手为管理员,相关信息发送至你的文件助手中。
目前微信机器人第二阶段开发完成,本次不仅仅新增监听模式
,还新增了以下以下一些功能:
-
机器人群聊:让机器人加入群聊,让更多的人来撩~
-
转发模式:可将老板重要指示转发至其他群
-
监控模式:监控群中别人发的分享,这样就可以第一时间发现是否有人在群中发广告
-
管理员:指定管理员后可以远程控制机器人的各个开关
大家可以根据自己的日常需求来自由发挥,个性化机器人哦~
原文:https://mp.weixin.qq.com/s/hqPx7Z6Pbd6zXRIzuGgl6w
Github项目地址:https://github.com/pig6/wxrobot(或点击阅读原文)
wxpy官方文档:https://wxpy.readthedocs.io/zh/latest
抄袭于 裸睡的猪公众号。。。。。。本人改良。