FFZ0706 2024-05-23 18:05 采纳率: 38.6%
浏览 15

python登录微信下载群文件里的文件

公司前段时间开始每天发日报,本来想做一个连接163邮箱下载邮件附件的程序,但是每次登录的时候会报这个错误
imaplib.IMAP4.error: command SEARCH illegal in state AUTH, only allowed in states SELECTED

多次解决无果之后,决定换一种方法,把所有的人拉一个微信群,每日把excel文件发送到群中,搜索了好久,发现没有完成的代码案例,请问有什么办法能解决这个,每天匹配后缀名称为今天的文件,然后下载到本地,进行合并,每日发送的文件名称暂定为:20240526张三-日报

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-05-23 18:05
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您想要解决的问题:

    您想要解决的问题是:使用Python编写一个自动化脚本,该脚本能够登录微信,搜索群文件中特定命名格式(例如:日期+姓名-日报)的Excel文件,并将这些文件下载到本地进行合并。

    问题出现原因:

    您在尝试使用Python的imaplib库来连接163邮箱并下载邮件附件时,遇到了一个错误:imaplib.IMAP4.error: command SEARCH illegal in state AUTH, only allowed in states SELECTED。这个错误表明在未选择邮件箱的情况下尝试执行搜索命令,这是不被允许的。

    问题解决方案:

    由于微信并没有提供官方的API来支持自动化操作,因此需要使用第三方库来实现登录微信、搜索群文件和下载文件的功能。一个常用的第三方库是itchat,它可以模拟微信网页版登录,并进行一些基本操作。

    提供代码:

    以下是一个简单的使用itchat库登录微信,并搜索特定命名格式的文件的示例代码:

    import itchat
    import os
    
    # 登录微信
    itchat.auto_login(hotReload=True)
    
    # 搜索群聊,这里需要替换为你的群聊名称
    chatrooms = itchat.search_chatrooms(name='你的群聊名称')
    
    # 遍历群聊
    for chatroom in chatrooms:
        # 获取群聊文件
        files = itchat.get_chatroom_files(update=True, chatroomUserName=chatroom['UserName'])
        
        # 遍历文件
        for file in files:
            # 匹配文件名
            if '20240526张三-日报.xlsx' in file['FileName']:  # 这里需要根据实际文件名进行匹配
                print(f'找到文件:{file["FileName"]}')
                # 下载文件
                itchat.download_file(file['FileName'], file['NewFileSaveAs'])
                print(f'文件已下载到:{file["NewFileSaveAs"]}')
    
    # 退出登录
    itchat.logout()
    

    代码运行方式:

    1. 确保安装了itchat库:pip install itchat
    2. 将上述代码保存为.py文件。
    3. 替换代码中的'你的群聊名称'为实际的群聊名称。
    4. 运行Python脚本。

    代码预期运行结果:

    代码将登录微信,搜索指定群聊中的文件,并下载匹配特定命名格式的文件到本地。

    推荐相关链接:

    • itchat GitHub:itchat库的GitHub页面,提供了详细的文档和使用示例。
    • itchat 使用教程:itchat的官方文档,详细介绍了如何使用itchat库。
    • Python 操作微信:一篇关于使用Python操作微信的文章,可能包含有用的信息。

    请注意,使用第三方库登录微信可能违反微信的服务条款,使用时请谨慎,并自行承担可能的风险。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月23日