zoukankan      html  css  js  c++  java
  • 用python登录WeChat 实现自动回复(非常详细)

    如要转载 麻烦备注好原文出处!!!

    最近实现了一些微信的简单玩法 我们可以通过网页版的微信微信网页版,扫码登录后去抓包爬取信息,还可以post去发送信息。

    》》安装itchat这个库     pip install itchat

    先来段简单的试用,实现微信的登录,运行下面代码会生成一个二维码,扫码之后手机端确认登录,就会发送一条信息给‘filehelper’,这个filehelper就是微信上的文件传输助手。

     

    import itchat
    
    # 登录
    itchat.login()
    # 发送消息
    itchat.send(u'你好鸭!', 'filehelper')

    它会给这个文件传输助手自动发送你好鸭!

    除了登录和发送消息我们还可以这么来玩,往下走~

    》》实现微信好友男女比例

    想统计下自己微信里好友的性别比例,当然也是很简单,先获取好友列表,统计列表里性别计数

    import itchat
    
    # 先登录
    itchat.login()
    
    # 获取好友列表
    friends = itchat.get_friends(update=True)[0:]
    
    # 初始化计数器,有男有女,当然,有些人是不填的
    male = female = other = 0
    
    # 遍历这个列表,列表里第一位是自己,所以从"自己"之后开始计算
    # 1表示男性,2女性
    for i in friends[1:]:
        sex = i["Sex"]
        if sex == 1:
            male += 1
        elif sex == 2:
            female += 1
        else:
            other += 1
    
    # 总数算上,好计算比例啊~
    total = len(friends[1:])
    
    # 好了,打印结果
    print (u"男性好友:%.2f%%" % (float(male) / total * 100))
    print (u"女性好友:%.2f%%" % (float(female) / total * 100))
    print (u"其他:%.2f%%" % (float(other) / total * 100))

    运行结果:

    》》实现微信自动回复

    接着来实现一个类似qq上的自动回复,原理就是接收到消息,就发消息回去,同时发一条给文件助手,就可以在文件助手中统一查看消息。

    代码很简单,来看看

    #coding=utf8
    import itchat
    
    # 自动回复
    # 封装好的装饰器,当接收到的消息是Text,即文字消息
    @itchat.msg_register('Text')
    def text_reply(msg):
        # 当消息不是由自己发出的时候
        if not msg['FromUserName'] == myUserName:
            # 发送一条提示给文件助手
            itchat.send_msg(u"[%s]收到好友@%s 的信息:%s
    " %
                            (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(msg['CreateTime'])),
                             msg['User']['NickName'],
                             msg['Text']), 'filehelper')
            # 回复给好友
            return u'[自动回复]您好,我现在有事不在,一会再和您联系。
    已经收到您的的信息:%s
    ' % (msg['Text'])
    
    if __name__ == '__main__':
        itchat.auto_login()
    
        # 获取自己的UserName
        myUserName = itchat.get_friends(update=True)[0]["UserName"]
        itchat.run()

    运行后会保持登录状态,开启自动回复模式,手机上查看:

     

    当然,除了文字Text信息,还可以接收图片(表情包算图片),语音,名片,地理位置,分享和类型为Note的信息(就是有人提示类的消息,例如撤回消息),把装饰器写成下面形式即可实现

    @itchat.msg_register(['Map', 'Card', 'Note', 'Sharing', 'Picture','Text'])

    如要转载 麻烦备注好原文出处!!!

    完成!

  • 相关阅读:
    jenkins
    onkeydown
    Unsupported major.minor version 51.0
    java 十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制
    Google Gson实现JSON字符串和对象之间相互转换
    java复制文件
    eclipse常用快捷键
    eclipse导入web工程变成Java工程,解决方案
    异常堆栈日志打印方法
    使用java命令运行class文件带包名时出错
  • 原文地址:https://www.cnblogs.com/Wang-jialu/p/10936414.html
Copyright © 2011-2022 走看看