开发工具
Python****版本:3.7.x(注意,必须是3.7版本的)
相关模块:
WechatPCAPI模块;
jieba模块;
wordcloud模块;
requests模块;
pycryptodomex模块;
以及一些python自带的模块。
微信PC端版本:
2.6.8.52
相关文件
关注公众号:python工程狮,回复“玩微信”即可获取
环境搭建
安装python3.7并添加到环境变量,pip安装需要的相关模块即可。
同时,电脑上必须安装2.6.8.52版本的微信。
原理简介
0.微信登录
安装下图所示的微信版本:
然后调用WechatPCAPI这个半开源包就可以实现微信的登录操作啦:
import logging
登录过程和你平时登录微信PC版一样,所以你需要扫码或者点击那个登录确认按钮进行微信登录。
1.微信消息防撤回
原理很简单,就是不断调用:
all_messages = {}
从而获得微信好友发给自己的所有信息,并用一个字典对象保存下来:
data = msg.get('data', {})
当对方撤回消息时,就把对方发过的消息通过文件传输助手重新发一遍给自己,以实现微信消息防撤回的功能:
if u'撤回了一条消息' in info[-1] and 'revokemsg' in info[-1]:
因为微信用户只能撤回三分钟以内的消息,所以我们写个函数清理一下微信好友三分钟之前发给自己的消息,换句话说,我们只保留最近三分钟的微信消息数据:
'''缓存清理'''
大功告成,完整源代码详见相关文件antiwithdrawal.py。
2.微信聊天机器人
原理和前面的微信消息防撤回类似,主要是添加个图灵机器人:
'''图灵机器人'''
然后回复对应的微信好友就行啦:
wx_id = data['msgfrominfo']['wx_id']
大功告成,完整源代码详见相关文件chatbot.py。
3.微信好友分析
刚开始看文档的时候以为可以获得微信好友的详细数据的,结果测试的时候才发现只能获取微信好友的微信号和昵称这些基本数据。性别,所在地这些数据是无法获取的,真是尴尬。所以只能画个好友词云呗:
nicknames = []
大功告成,完整源代码详见相关文件analysisfriends.py。
效果图展示
0.微信登录
微信登录成功时终端打印的数据如下:
1.微信消息防撤回
比如你们在聊天,对方撤回了一条消息:
然后你可以查看一下文件传输助手:
显然,你的好友欺骗了你。
2.微信聊天机器人
截个和机器人聊天的效果图:
3.微信好友分析
网友评论