pywechat是我基于pywinauto,win32gui开发的一个用于windows系统下的微信自动化操作工具,内置了许多模块,可以自动化实现微信内基本所有的操作。
这里我们使用pywechat的Contacts模块将windowspc微信通讯录中所有好友(不包括企业微信好友)的昵称,备注,微信号导出到excel中。
首先,安装pywechat
win+r,输入cmd,在终端中输入
pip install pywechat127
等待片刻即可
若你已经安装过了pywechat,可以尝试更新一下至最新版本
pip install --upgrade pywechat127
接着,我们使用pywechat获取通讯录所有好友的基本信息
from pywechat.WechatAuto import Contacts
friend_info=Contacts.get_friends_info()
print(friend_info)
仅需上述两行代码,我们便可以得到通讯录内所有好友的基本信息,在运行该代码时,windows系统内的微信会被打开并进行一系列自动化操作,在该过程中,不需要做任何操作,静静等待任务完成即可。
效果:
有了好友信息,那么我们只需使用pandas的to_excel函数将其导出至excel即可
完整代码:
import pandas as pd
import json
from pywechat.WechatAuto import Contacts
friends_info=Contacts.get_friends_info()
friends_info=json.loads(friends_info)
nicknames=[dic.get('昵称') for dic in friends_info]
remarks=[dic.get('备注') for dic in friends_info]
wechatnums=[dic.get('微信号') for dic in friends_info]
friend_data={'昵称':nicknames,'备注':remarks,'微信号':wechatnums}
friend_data=pd.DataFrame(friend_data,index=range(1,len(nicknames)+1,1))
#这里的路径换成你自己新建的一个空白excel就行
friend_data.to_excel(r"E:\OneDrive\Desktop\好友信息.xlsx",index=False)
这里要注意的是为了方便读写文件,Contacts内所有获取好友信息的方法返回的结果都是json格式,即字符串,其样式为[{},{},{}],因此我们需要使用json.dumps先将其反序列化,然后再进行后续操作。
可能出现的错误:
pywechat依赖微信Wechat.exe文件路径,若你在使用其内部所有方法时没有传入wechat_path这一路径,pywechat会在windows环境变量中查找,若否都没有则会引发错误,为了避免这种情况,建议你在使用时,将微信Wechat.exe文件路径添加到windows的用户环境变量中。
当然,为了将自动化的理念贯彻到底,pywechat已内置了上述方法,你只需运行这两行代码,便可自动添加
from pywechat.WechatTools import Tools
Tools.set_wechat_as_environ_path()
效果:
最后