微信有一个很神奇的功能,你可以在消息发出去两分钟之内撤回消息。说错话了,你可以趁别人没有看到赶紧撤回;消息发错地方了,可以马上撤回以免尴尬。但是,不知道有没有像我一样的强迫症,看到别人撤回了一条消息,就必须要知道他/她到底发了什么,不然一天都不爽的。如果你也是,那么恭喜你,看完这个系列文章你就应该有办法查看那些该死的被撤回的消息。

开发环境准备

按照惯例,我们还是用Python来编写这个脚本。为了能查看微信被撤回的消息,首先我们需要一个能登陆微信的库。Python有很多这样的库,比如ItChatwxpy等,这里采用我用的最多的ItChat库。

由于ItChat是通过模拟登陆网页版微信实现微信的部分功能,所以你需要有一个能够登陆网页版微信的微信号。怎么知道自己的微信能不能登陆呢?复制下面的网址打开,用微信扫码,如果能登陆那就是可以的。

https://wx.qq.com/

通过下面的命令安装ItChat

pip install itchat

安装完之后,打开Python编译器,如果能导入就是安装成功:

import itchat

登陆微信

接下来,我们来看看这个神奇的库是如何登陆微信的。实现的方法有很多,我们看看最简单的一种:

import itchat

itchat.auto_login()
itchat.run()

包括导入包的代码,总共3行代码!

运行之后,会输出如下信息:

Getting uuid of QR code.
Downloading QR code.
Please scan the QR code to log in.

同时会出现一个二维码,程序运行目录会多出一个QR.png文件。没错,这个二维码就是程序自动获取的上面那个网页版微信的二维码,所以需要你用微信扫一扫实现登陆。用微信扫描之后,程序会输出:

Please press confirm on your phone.

这时你在手机上点击确认。确认之后,程序就开始加载你的通讯录,同时输出一下信息:

Loading the contact, this may take a little while.
Login successfully as ****
Start auto replying.

这时候你就看到你的微信已经成功登陆,多出的QR.png文件也已经自动删除。而且已经可以自动应答,同时你的手机微信最上方也会显示“网页微信已登录”的信息:

不过,这时如果你重开程序你就需要重新扫码登陆。这也太麻烦了,ItChat也想到了这些,为我们提供了免除这一麻烦的方式。其实也很简单,只需要在登陆的方法中加一个参数即可:

itchat.auto_login(hotReload=True)

同样的方式登陆,我们会发现程序运行目录会多出一个itchat.pkl文件,这个文件中就存储了我们的微信登陆信息。

这时候如果重开程序就不需要重新扫码了。但是如果中间间隔好几天,因为这时候登陆信息已经过期,也还是需要扫码的。

下期预告

今天简单的介绍了如何搭建开发环境以及如何登陆微信,下一期会详细介绍怎么接收信息,怎么判断信息被撤回。

不管写什么,希望能跟更多人沟通,有问题或者需求随时欢迎交流。

我所有的项目源码都会放在下面的github仓库里面,有需要可以参考,有问题欢迎指正,谢谢!

https://github.com/TitusWongCN/

下面是我的公众号,有兴趣可以扫一下:


TitusWong
38 声望20 粉丝

Python