zoukankan      html  css  js  c++  java
  • itchat 微信的使用

    #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()

    好友签名标签云

    # coding:utf-8
    import itchat
    import re
    
    itchat.login()
    friends = itchat.get_friends(update=True)[0:]
    tList = []
    for i in friends:
        signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")
        rep = re.compile("1fd.+")
        signature = rep.sub("", signature)
        tList.append(signature)
    
    # 拼接字符串
    text = "".join(tList)
    
    # jieba分词
    import jieba
    wordlist_jieba = jieba.cut(text, cut_all=True)
    wl_space_split = " ".join(wordlist_jieba)
    
    # wordcloud词云
    import matplotlib.pyplot as plt
    from wordcloud import WordCloud, ImageColorGenerator
    import os
    import numpy as np
    import PIL.Image as Image
    
    
    d = os.path.dirname(__file__)
    # 更改目录下Wordcloud生成图片,如:xiaohuangren.jpg
    alice_coloring = np.array(Image.open(os.path.join(d, "xiaohuangren.jpg")))
    # win系统需要更改font路径,如:C:WindowsFontsmsyhbd.ttc
    my_wordcloud = WordCloud(background_color="white", max_words=2000, mask=alice_coloring,
                             max_font_size=40, random_state=42,
                             font_path='/Users/sebastian/Library/Fonts/Arial Unicode.ttf')
        .generate(wl_space_split)
    
    image_colors = ImageColorGenerator(alice_coloring)
    plt.imshow(my_wordcloud.recolor(color_func=image_colors))
    plt.imshow(my_wordcloud)
    plt.axis("off")
    plt.show()
    
    # 保存图片 并发送到手机
    my_wordcloud.to_file(os.path.join(d, "wechat_cloud.png"))
    itchat.send_image("wechat_cloud.png", 'filehelper')
    # coding:utf-8
    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)
    
    # 使用echarts,加上这段
    from echarts import Echart, Legend, Pie
    
    chart = Echart(u'%s的微信好友性别比例' % (friends[0]['NickName']), 'from WeChat')
    chart.use(Pie('WeChat',
                  [{'value': male, 'name': u'男性 %.2f%%' % (float(male) / total * 100)},
                   {'value': female, 'name': u'女性 %.2f%%' % (float(female) / total * 100)},
                   {'value': other, 'name': u'其他 %.2f%%' % (float(other) / total * 100)}],
                  radius=["50%", "70%"]))
    chart.use(Legend(["male", "female", "other"]))
    del chart.json["xAxis"]
    del chart.json["yAxis"]
    chart.plot()

    自动回复机器人

    import requests
    import itchat
    
    KEY = 'd364bd41d25c4c1a9dfcecccf8ed8494'
    
    def get_response(msg):
        apiUrl = 'http://www.tuling123.com/openapi/api'
        data = {
        'key' : KEY,
        'info' : msg,
        'userid' : 'wechat-robot',
        }
        try:
            r = requests.post(apiUrl, data=data).json()
            return r.get('text')
        except Exception as e:
            print(e)
    
    @itchat.msg_register(['Map', 'Card', 'Note', 'Sharing', 'Picture','Text'])
    def tuling_reply(msg):
        defaultReply = 'I received: ' + msg['Text']
        reply = get_response(msg['Text'])
        return reply or defaultReply
    
    itchat.auto_login(hotReload=True)
    itchat.run()
  • 相关阅读:
    一些博弈
    中国剩余定理分析及扩展
    2018年全国多校算法寒假训练营练习比赛(第三场)
    数论——逆元
    扩展欧几里得
    算法思维题
    匈牙利算法
    Codeforces #449 div2 C题
    16级C程序设计竞赛C题
    动态规划--模板--hdu 1059 Dividing
  • 原文地址:https://www.cnblogs.com/Erick-L/p/6895514.html
Copyright © 2011-2022 走看看