前言
一个需求
需要利用Python+第三方库wxauto 用于微信上自动获取聊天信息,从而根据自己需求对信息自动进行二次处理,
比如自动回复,再比如自动发送文件或者其他。
--- 记录于2022年08月
--- 2023年9月再次测试可用
使用Python3的第三方库wxauto
, 它适用于Windows的微信客户端
官网: https://github.com/cluic/wxauto
功能
这篇是微信自动化工具开发系列的第四篇
代码的主要功能:
- 微信每个群的群文件文件按照群名划分拷贝到新的文件夹里面
比如这里: 执行一次, 将微信群里
不同群
的所有文件同步覆盖拷贝
到C:\Users\hyh\Documents\01\
中不同的群名文件夹中
需要修改配置文件注:这个功能不需要用
wxauto
环境
Windows 10
Python 3.8.10
Windows 10的微信客户端版本:3.7.5.23 (中文版本)
注:微信客户端中文版跟英文版都可以
没什么太大区别。建议使用中文版本,英文版本现在微信更新后出现了Bug.
目前wxauto对wechat 3.9版本没后续更新,建议使用wechat 3.7版本的
(旧版本微信直接覆盖安装,不会删除微信以往聊天记录,设置 里面选择 ‘不自动升级’)
wechat 3.7 版本的安装包(可以网上寻找):https://wechat-for-windows.en.uptodown.com/windows/download
安装
安装Python3的第三方库
wxauto
,具体步骤如下官网: https://github.com/cluic/wxauto
在cmd窗口执行下面命令进行安装
- 安装第三方库
wxauto
python3 --version
python3 -m pip install wxauto -i https://pypi.tuna.tsinghua.edu.cn/simple
- 查看
wxauto
是否安装成功
python3 -c "import wxauto; print(wxauto.VERSION)"
使用步骤
1. 新建main04.py
import shutil
import os
def copy_wx_file_to_new_dir(input_dir, output_dir, wx_group_dict):
i = 0
for value in wx_group_dict.values():
i += 1
print("*" * 50)
print(f"开始处理第{i}个群")
wechat_group_id = value['id']
wechat_group_name = value['name']
temp_input_dir = input_dir + '\\' + wechat_group_id + '\\File'
temp_output_dir = output_dir + '\\' + wechat_group_name
print_temp_output_dir = temp_output_dir.replace('\\\\', '\\')
try:
print(f"开始拷贝{wechat_group_name}的文件到新文件夹:{print_temp_output_dir}")
if os.path.exists(temp_output_dir):
shutil.rmtree(temp_output_dir)
shutil.copytree(temp_input_dir, temp_output_dir)
print("拷贝结束")
except Exception as e:
print("拷贝报错:", e)
if __name__ == '__main__':
# 群名跟id对应关系,打开微信一个群,点击`聊天记录`,右击`文件`,查看其中的一个文件右击`点开文件所在文件夹`,获得其中的`id`
wx_group_dict = {
0: {
'id': '2291da65c17fd645845fdf42e0cc7664',
'name': '群名一'
},
1: {
'id': 'a9ed29cc2643a3bebcb74b4bae488af2',
'name': '群名二'
},
}
# 本地配置
output_dir = r'C:\Users\aaa\Documents\01' # 输出目录,改成本地的
input_dir = r'C:\Users\aaa\Documents\WeChat Files\wxid_123123\FileStorage\MsgAttach' # 微信默认保存目录,改成本地的
####################################################################################################################
# 函数功能: 文件拷贝到新的文件夹里面
####################################################################################################################
copy_wx_file_to_new_dir(input_dir, output_dir, wx_group_dict)
2. 打开微信
- windows10下打开微信客户端 (注:如果用的英文,记得点击左下角
Settings
->General
切换为中文) - 正常扫码登录
- 打开微信窗口到前面,不要最小化或者缩小到底部菜单
3. 执行代码
- 修改
main04.py
的配置
wx_group_dict: 群名跟id对应关系,打开微信一个群,点击
聊天记录
,右击文件
,查看其中的一个文件右击点开文件所在文件夹
,获得其中的id
input_dir: 微信默认保存目录,改成本地的
output_dir: 想要保存的输出目录,改成本地的
# 群名跟id对应关系,打开微信一个群,点击`聊天记录`,右击`文件`,查看其中的一个文件右击`点开文件所在文件夹`,获得其中的`id`
# 如: C:\Users\aaa\Documents\WeChat Files\wxid_123\FileStorage\MsgAttach\12d87d05b941e072f58e5290f995db01\File\2022-07
# 其中 7bd87d05b941e072f58e5290f995db01 即为这个群对应id
wx_group_dict = {
0: {
'id': '7bd87d05b941e072f58e5290f995db01',
'name': '群名一'
},
1: {
'id': 'a9ed29cc2643a3bebcb74b4bae488af2',
'name': '群名二'
},
}
# 本地配置
output_dir = r'C:\Users\aaa\Documents\01' # 输出目录,改成本地的
input_dir = r'C:\Users\aaa\Documents\WeChat Files\wxid_123123\FileStorage\MsgAttach' # 微信默认保存目录,改成本地的
- 执行
main04.py
打开cmd窗口,在cmd窗口执行:
如果没有安装第三方库,参考上面的
安装
步骤进行安装再执行下面命令
cd E:\2022Python # 修改为你的main03.py所在路径
python3 main04.py
4. 输出
cmd窗口输出结果为:
PS E:\2022Python> python3 .\04_保存用户的群文件到指定文件夹.py
**************************************************
开始处理第1个群
开始拷贝群名一的文件到新文件夹:C:\Users\hyh\Documents\01\群名一
拷贝结束
**************************************************
开始处理第2个群
开始拷贝群名二的文件到新文件夹:C:\Users\hyh\Documents\01\群名二
拷贝结束
- 点击
C:\Users\hyh\Documents\01\
文件夹下查看到不同群名命名的文件夹