• Python 微信自动化工具开发系列02_自动获取微信多个好友聊天信息(2022年7月可用)


    前言

    一个需求
    
    需要利用Python+第三方库wxauto 用于微信上自动获取聊天信息,从而根据自己需求对信息自动进行二次处理,
    比如自动回复,再比如自动发送文件或者其他。
    
    																--- 记录于2022年07月
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    使用Python3的第三方库wxauto, 它适用于Windows的微信客户端

    官网: https://github.com/cluic/wxauto


    功能

    这篇是微信自动化工具开发系列的第二篇

    代码的主要功能

    Python获取微信指定多个用户的聊天信息


    原因

    这边使用wxauto来进行开发,而不是itchat,原因如下

    itchat都是之前的教程,
    本质上是用的微信的网页端的接口来进行数据交互的。

    如果你想要使用itchat的代码的话,

    • 1、先测试下你的账号是否还可以登录微信网页端

    https://wx.qq.com/
    腾讯官方虽然没有正式的发表声明,但是你搜一下可以看到相关信息
    大概从去年开始(时间不太确定),大部分微信账号都不可以继续登录微信网页端,只有少部分账号还可以登录。
    原因未知。

    • 2、如果可以登录微信网页版 那么你可以关闭这个博客去网上找下itchat的代码来学习运行下,

    如果登录失败,那么或许你可以尝试下wxauto也就是这里所说的方法来运行下。


    环境

    Windows 10
    Python 3.8.10
    Windows 10的微信客户端版本:3.7.5.23 (英文版本)
    
    • 1
    • 2
    • 3

    注:微信客户端中文版跟英文版都可以
    没什么太大区别。

    安装

    安装Python3的第三方库wxauto,具体步骤如下

    官网: https://github.com/cluic/wxauto

    在cmd窗口执行下面命令进行安装

    • 安装第三方库wxauto
    python3 --version
    python3 -m pip install wxauto -i https://pypi.tuna.tsinghua.edu.cn/simple 
    
    • 1
    • 2
    • 查看wxauto是否安装成功
    python3 -c "import wxauto; print(wxauto.VERSION)"
    
    • 1

    使用步骤

    1. 新建main02.py

    这边第一篇只介绍获取默认窗口的聊天信息

    from wxauto import *
    
    # 获取当前微信客户端
    wx = WeChat()
    
    # 获取会话列表
    wx.GetSessionList()
    
    
    ###############################
    # 1、获取默认窗口聊天信息
    ###############################
    def get_default_window_messages():
        # 默认是微信窗口当前选中的窗口
        # 输出当前聊天窗口聊天消息
        msgs = wx.GetAllMessage
        for msg in msgs:
            print('%s : %s' % (msg[0], msg[1]))
    
        ## 获取更多聊天记录
        wx.LoadMoreMessage()
        msgs = wx.GetAllMessage
        for msg in msgs:
            print('%s : %s' % (msg[0], msg[1]))
    
    
    ###############################
    # 2、获取指定窗口聊天信息
    ###############################
    def get_window_messages_from_list(whos):
        for who in whos:
            print("************************************\n")
            print("开始切换聊天窗口为:", who)
            wx.ChatWith(who)
            print("当前聊天窗口为:", who)
            msgs = wx.GetAllMessage
            for msg in msgs:
                print('%s : %s' % (msg[0], msg[1]))
            print("************************************\n")
    
    
    if __name__ == '__main__':
        # get_default_window_messages()
        
        # 单个
        whos = ['文件传输助手']  # 适用于中文版微信
        # whos = ['File Transfer'] # 适用于 英文版微信
            
        # 多个
        # whos = ['文件传输助手', '你的微信好友备注' ]  # 适用于中文版微信
    
        get_window_messages_from_list(whos)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    2. 打开微信

    • windows10下打开微信客户端
    • 正常扫码登录
    • 打开微信窗口到前面,不要最小化或者缩小到底部菜单

    3. 执行代码

    打开cmd窗口,在cmd窗口执行:

    如果没有安装第三方库,参考上面的安装步骤进行安装再执行下面命令

    cd 你的main02.py所在路径
    python3 main02.py
    
    • 1
    • 2

    4. 输出

    cmd窗口
    正常输出你单个好友或者多个好友的默认微信窗口的聊天信息
    
    • 1
    • 2

    后续

    这边刚开始写一下系列文章,想发展下自己的博客和微信公众号账号

    如果对你有帮助,方便的话可以关注下 博客左侧的微信公众号(点击我的头像进入个人中心,位于左侧下方)

    如有问题的话,也可通过公众号直接留言,这边有微信提醒,可以几小时内及时回复

    也可直接在CSDN博客留言或者私信留言,这个没有微信提醒,所以这边可能一天或者几天内给回复

    微信公众号所在位置:打开个人中心也就是这个链接
    https://blog.csdn.net/xiaozi_001?type=blog
    左侧下方

    如有需求,

    想要对微信进行一些自动化操作来提高效率:

    比如

    • 自动群发不同聊天信息到几个微信群里

    • 自动群发不同的图片到几个微信群里

    • 自动群发不同的文件到几个微信群里


    • 如果你本身懂代码的话

    如果你本身懂代码的话, 直接看第三方库wxauto的使用,自己来写就可以了,

    博客后续也会基于这个系列继续更新。

    欢迎点赞留言提出问题,方便的话 点赞收藏 关注下微信公众号

    • 如果你本身不懂代码

    只是想要一个简单的微信处理工具来满足自己的需求的话

    可以微信公众号留言或者私信留言,

    发下你的具体需求,这边后续根据你的需求进行下二次开发

    如有需求,可关注下博客左侧的微信公众号留言或者直接私信留言

    前者可以几小时内及时回复

    后者可能看的不及时,大概一天或者几天内有回复


    其他

    如有问题 欢迎提出

    如有疑问 欢迎留言

    如有作用 欢迎点赞

    如有失效 欢迎留言

    2022年07月 可用

  • 相关阅读:
    Linux环境MySQL数据库主从复制保姆级教程
    期末复习总结【MySQL】五种约束类型, 主键和外键的使用方式(重点)
    Elasticsearch语句—SQL详解
    跨境电商商城源码(多语言多商户进出口电商平台)
    第五章:LockSupport与线程中断
    如何做好软件测试的需求分析工作呢?
    Maven学习(二)
    cf #832 Div.2(A-D)
    代码随想录算法训练营第三十七天| 860.柠檬水找零,406.根据身高重建队列 ,738.单调递增的数字
    接口、压力测试工具入门指南
  • 原文地址:https://blog.csdn.net/xiaozi_001/article/details/126076572