在上篇文章《
我是什么人,Python告诉你!
》中,简单介绍了下Python中功能强大的的itchat库,实现获得微信好友的基本信息,再进行简单的数据统计,可做出可视化微信好友性别比例、可视化微信好友个性签名等应用,还是比较有意思的。
整体思路:
2、一条微信消息有三个重要字段:消息内容、发送者、接收者;
3、注册相应消息类型(文字、视频、语音、图片等)的处理函数,为了处理的简单方便,这里只监控文字类型的微信消息;
4、要实现查看到被撤回的消息内容,只需要将本微信号接收到的所有的微信消息进行存储或者转发即可;
下面来具体看看效果吧。
手机微信聊天界面看到的效果图:
利用Python将接收到的消息转发到文件传输助手:
利用Python将消息存储到文本文件:
几点改进:
2、转发微信消息无发送者名称,不知道是谁发过来的;存储微信消息,发送者字段是一串很长的ID号,也分不清是谁;后续需要进行改进,可以获取到发送者的ID,再需要遍历好友列表(itchat提供search_friends方法),再和昵称字段(NIckName)进行匹配和转换即可。
3、这里是将所有的微信消息都进行转发或者存储,简单粗暴地实现了能够知道撤回消息的功能,但是会浪费大量资源,需要找到一种方法判断消息被撤回了再进行存储或转发,暂时还未想到实现方法,欢迎交流讨论。
4、此处只是简单示例,后续可进一步优化的地方:加上显示被撤回消息的时间、谁发送的、哪一类信息(文本、图片、语音、视频、分享、位置、附件等),加上这些功能,形成一个完整的被撤回微信消息的转发功能。
5、附加功能:微信发一条消息,Python程序监控到消息中有cmd字段,表面是微信控制Windows的命令,使用Python中的OS库的system函数执行此命令,例如发送消息“cmd shutdown -s -t 0”,Python程序会在Windows中启动命令行执行命令“shutdown -s -t 0”,实现立即关机。这样就实现了手机控制电脑的功能,大冬天的躺在被窝里看完电视剧就不必下床关电脑啦哈哈哈哈哈
几点思考:
1、itchat库功能太强大了!扫码就可以用Python模拟登陆网页版微信,然后微信聊天消息全部都被Python程序所监控,Python程序还可以发出微信消息。仔细想想还是很可怕的,要是不小心微信扫码,微信号被不法分子所监控和利用,后果不敢想象啊所以,不清不白的二维码大家不要乱扫啊!确认授权时要慎之又慎!
学习、整理、输出、分享,也是一件很有意思的事情。