pywechat简介

    pywechat是我基于UI自动化技术开发的一个开源的windows桌面微信自动化操作工具,涉及到的工具和技术栈为pywinauto和windows api,基本实现了PC微信内置的各项操作。

pywechat结构:

微信版本:3.9.12.5x, 4.1+

操作系统:🪟windows 7  🪟windows 10 🪟windows 11

python版本🐍:3.8+

项目github地址:https://github.com/Hello-Mr-Crab/pywechathttps://github.com/Hello-Mr-Crab/pywechat   

项目源码与操作手册已于github发布,望大家动动发财的小手帮忙点一个免费的star(*^▽^*)

获取方法

git clone https://github.com/Hello-Mr-Crab/pywechat.git

导入方式 

直接导入所有内容

from pywechat import *
XXX

 从五个主模块中导入

from pywechat.WechatAuto import XXX
XXX

多文件发送

        在使用pywechat给某个好友发送多个文件时你可以将所有待发送的文件放置在一个文件夹内,然后使用Files.send_files_to_friend方法发送,微信一次性发送文件的数量限制是9,pywechat可以突破此限制,即使你有上百个文件要发送,pywechat可以分批次每批9个进行发送,保证你可以一次性将文件夹内文件全部发送。

使用示例:

from pywechat.WechAuto import Files
folder_path="E:\OneDrive\Desktop\微信自动化操作.exe"
Files.send_files_to_friend(friend='文件传输助手',folder_path=folder_path)

多任务使用

      微信不支持多线程,只支持单线程多任务轮流执行,pywechat也支持单线程多任务轮流执行,在运行多个实例时尽量请将所有函数与方法内的close_wechat参数设为False(默认为True)。        

    这样只需要打开一次微信,多个任务便可以共享资源,更加高效,否则,每个实例在运行时都会重启一次微信,较为低效。

示例:

from pywechat.WechatAuto import Messages,Files
Messages.send_messages_to_friend(friend='好友1',messages=['在测试','ok'],close_wechat=False)
Files.send_files_to_friend(friend='文件传输助手',folder_path=r"E:\OneDrive\Desktop\测试专用",with_messages=True,messages_first=True,messages=['在测试文件消息一起发,你应该先看到这条消息,后看到文件'],close_wechat=True)

运行上述代码后,微信将被打开先给好友1发送消息,然后接着继续给文件传输助手发送文件 

监听消息

        监听消息分为全局监听与监听某个聊天窗口

全局监听

        全局监听指的是监听整个会话列表内所有发送新消息的好友及其消息内容。这里主要用到check_new_message函数

check_new_message函数

比如,会话列表中有发送新消息的好友

代码

from pywechat import check_new_message
filesave_folder=r"E:\Desktop\文件保存"
newMessages=check_new_message(duration='5min',save_file=True,target_folder=filesave_folder)
#newMessages是[{'好友名称':'路人甲','好友类型':'群聊,好友或公众号','新消息条数':xx,'消息内容':[],'消息类型':[]}]
#格式的list[dict]

 共计31条新消息

 

结果

        check_new_messsage()函数返回值为[{'好友名称':'路人甲','好友类型':'群聊,好友或公众号','新消息条数':xx,'消息内容':[],'消息类型':[]}]格式的list[dict]

        要注意的是check_new_message函数只能实现聊天文件的自动保存,如果需要保存图片或视频,可以自行在返回值中筛选消息类型,然后使用save_photos或save_videos函数实现

监听某个聊天窗口内容

        监听某个聊天窗口内容可以使用listen_on_chat函数,最新版本的1.9.6支持监听好友消息的同事保存消息内的文件,图片与视频。

from pywechat import listen_on_chat
filesave_folder=r"E:\Desktop\保存文件"
mediasave_folder=r"E:\Desktop\聊天图片与视频保存"
contents,senders,types=listen_on_chat(friend='测试群',duration='10min',save_file=True,file_folder=filesave_folder,save_media=True,media_folder=mediasave_folder)
print(contents,senders,types)

listen_on_chat函数

运行效果

测试群聊(已清空聊天记录) 

群成员消息 

 群成员发送的图片

群成员发送的文件 

 代码输出结果

给定文件夹下保存的图片 

给定文件夹下保存的文件 

        注意,保存图片时默认使用截屏的方式保存图片,如果需要质量更高,可以将save_method参数设置为1,save_method=0时默认使用截图的方式保存,save_method为1时使用另存为的方式下载 

总结

最后,感谢所有支持pywechat的用户,祝大家Have fun in WechatAutomation!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐