最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python操作微信客户端:WechatPCAPI库实现自动化回复

    正文概述    2020-05-26   472

    python操作微信客户端:WechatPCAPI库实现自动化回复

    目前有一个项目 WechatPCAPI 可以对微信进行操作,简单来说它是直接操作 PC 版微信客户端的,当然它有一定不足之处就是:PC 版微信客户端和 Python 都需要使用指定版本的,本文我们使用的 Python 版本为 3.7.6 ,微信客户端使用版本为 2.6.8.52 ,WechatPCAPI 的 GitHub 地址为: https://github.com/Mocha-L/WechatPCAPI。

    获取好友列表

    WechatPCAPI 提供了方法 get_friends(),该方法返回信息包括:好友、群和公众号的列表信息,信息内容主要包括:微信号、昵称和自己设置的备注。

    我们使用获取的昵称做个简单的词云展示,代码实现如下所示:

    logging.basicConfig(level=logging.INFO)
    
    def on_message(message):
     pass
    
    def get_friends():
     # 初始化微信实例
     wx_inst = WechatPCAPI(on_message=on_message, log=logging)
     # 启动微信
     wx_inst.start_wechat(block=True)
     # 等待登陆成功,此时需要人为扫码登录微信
     while not wx_inst.get_myself():
      time.sleep(5)
     print('登陆成功')
     nicknames = []
     # 排除的词
     remove = ['还是', '不会', '一些', '所以', '果然',
         '起来', '东西', '为什么', '真的', '这么',
         '但是', '怎么', '还是', '时候', '一个',
         '什么', '自己', '一切', '样子', '一样',
         '没有', '不是', '一种', '这个', '为了'
       ]
     for key, value in wx_inst.get_friends().items():
      if key in ['fmessage', 'floatbottle', 'filehelper'] or 'chatroom' in key:
       continue
      nicknames.append(value['wx_nickname'])
     words = []
     for text in nicknames:
      if not text:
       continue
      for t in jieba.cut(text):
       if t in remove:
        continue
       words.append(t)
     global word_cloud
     # 用逗号隔开词语
     word_cloud = ','.join(words)
    
    def nk_cloud():
        # 打开词云背景图
        cloud_mask = np.array(Image.open('bg.png'))
        # 定义词云的一些属性
        wc = WordCloud(
            # 背景图分割颜色为白色
            background_color='white',
            # 背景图样
            mask=cloud_mask,
            # 显示最大词数
            max_words=300,
            # 显示中文
            font_path='./fonts/simkai.ttf',
            # 最大尺寸
            max_font_size=70
        )
        global word_cloud
        # 词云函数
        x = wc.generate(word_cloud)
        # 生成词云图片
        image = x.to_image()
        # 展示词云图片
        image.show()
        # 保存词云图片
        wc.to_file('nk.png')

    看一下效果:

    python操作微信客户端:WechatPCAPI库实现自动化回复

    消息防撤回

    我们在使用微信和好友聊天时,对方有时会有撤回消息的情况,正常情况下,我们是不知道好友撤回的消息是什么的,通过 WechatPCAPI 就可以实现消息防撤回的功能。

    我们知道通常撤回的消息是点击撤回操作前一步发送的内容,当然也可能撤回的是前两步、三步 ... 的消息,这里我们只对撤回前一步的消息做处理,基本思路是:我们将撤回前一步发送的消息存一下,当对方点击撤回操作时,我们再将前一步的消息再次返回给自己。

    下面看一下实现代码:

    logging.basicConfig(level=logging.INFO)
    queue_recved_event = Queue()
    
    def on_message(msg):
        queue_recved_event.put(msg)
    
    def login():
        pre_msg = ''
        # 初始化微信实例
        wx_inst = WechatPCAPI(on_message=on_message, log=logging)
        # 启动微信
        wx_inst.start_wechat(block=True)
        # 等待登陆成功,此时需要人为扫码登录微信
        while not wx_inst.get_myself():
            time.sleep(5)
        print('登陆成功')
        while True:
            msg = queue_recved_event.get()
            data = msg.get('data')
            sendinfo = data.get('sendinfo')
            data_type = str(data.get('data_type'))
            msgcontent = str(data.get('msgcontent'))
            is_recv = data.get('is_recv')
            print(msg)
            if data_type == '1' and 'revokemsg' not in msgcontent:
                pre_msg = msgcontent
            if sendinfo is not None and 'revokemsg' in msgcontent:
                user = str(sendinfo.get('wx_id_search'))
                recall = '撤回的消息:' + pre_msg
                wx_inst.send_text(to_user=user, msg=recall)

    看一下操作

    python操作微信客户端:WechatPCAPI库实现自动化回复


        更多python相关内容,请关注python自学网。

    下载网 » python操作微信客户端:WechatPCAPI库实现自动化回复

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元