zoukankan      html  css  js  c++  java
  • Python与微信——itchat包

    目录

    itchat

    一安装itchat

    pip install itchat pip install echarts-python

    二登陆并向文件传输助手发消息

    ``` import itchat

    登录

    itchat.login()

    发送消息,filehelper是文件传输助手

    itchat.send(u'hello', 'filehelper')

    <h4 class='title'>二微信好友性别比例</h4>
    

    获取好友列表

    friends = itchat.get_friends(update=True)[0:]
    print(friends)

    初始化计数器,有男有女

    male = female = other = 0

    遍历这个列表,列表里第一位是自己,所以从“自己”之后计算

    Sex中1是男士,2是女士

    UserName, City, DisplayName, Province, NickName, KeyWord, RemarkName, HeadImgUrl, Alias,Sex

    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("男性好友:%.2f%%"%(float(male)/total100))
    print("女性好友:%.2f%%"%(float(female)/total
    100))
    print("其他:%.2f%%"%(float(other)/total*100))

    <h4 class='title'>三微信设置自动回复</h4>
    

    import itchat
    import time

    自动回复

    封装好的装饰器,当接收到的消息是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()

    <h4 class='title'>四好友头像拼接</h4>
    

    import itchat
    import math
    import PIL.Image as PImage
    import os

    Img_Dir = os.path.join(os.path.dirname(file), 'img')
    all_img_dir = os.path.join(os.path.dirname(os.path.dirname(file)), 'images')

    itchat.auto_login()
    friends = itchat.get_friends(update=True)[0:]
    print('my friends====', friends)
    user = friends[0]['UserName']

    num = 0
    for i in friends:
    img = itchat.get_head_img(userName=i['UserName'])
    fileImage = open(os.path.join(Img_Dir, str(num)+".png"), 'wb')
    fileImage.write(img)
    fileImage.close()
    num+=1

    ls = os.listdir(Img_Dir)
    each_size = int(math.sqrt(float(640640)/len(ls)))
    lines = int(640/each_size)
    image = PImage.new('RGBA', (640,640))
    x = 0
    y = 0
    for i in range(0, len(ls)+1):
    try:
    img = PImage.open(os.path.join(Img_Dir, str(i)+".png"))
    except IOError:
    print('Error')
    else:
    img = img.resize((each_size, each_size), PImage.ANTIALIAS)
    image.paste(img, (x
    each_size, y*each_size))
    x += 1
    if x == lines:
    x = 0
    y += 1

    img_path = os.path.join(all_img_dir, 'all.png')
    image.save(img_path)
    itchat.send_image(img_path, 'filehelper')

    <h4 class='title'>五微信个性签名词云</h4>
    

    import itchat
    import re

    jieba分词

    import jieba

    wordcloud词云

    from wordcloud import WordCloud, ImageColorGenerator
    import matplotlib.pyplot as plt
    import PIL.Image as Image
    import os
    import numpy as np

    先登录

    itchat.login()

    获取好友列表

    friends = itchat.get_friends(update=True)[0:]

    tlist = []
    for i in friends:
    # 获取签名
    signature1 = i['Signature'].strip().replace('span', '').replace('class','').replace('emoji','')
    # 正则过滤emoji表情
    rep = re.compile("1fd.+")
    signature = rep.sub('', signature1)
    tlist.append(signature)

    拼接字符串

    text = ''.join(tlist)

    jieba分词

    word_list_jieba = jieba.cut(text, cut_all=True)
    wl_space_split = ' '.join(word_list_jieba)

    图片路径

    projiect_path = os.path.dirname(os.path.dirname(file))
    img_dir = os.path.join(projiect_path, 'images')
    alice_coloring = np.array(Image.open(os.path.join(img_dir, 'ciyun.jpg')))

    选择字体存放路径

    my_wordcloud = WordCloud(
    # 设置背景颜色
    background_color='white',
    max_words=2000,
    # 词云形状
    mask=alice_coloring,
    # 最大字号
    max_font_size=40,
    random_state=42,
    # 设置字体,不设置就会乱码
    font_path=os.path.join(img_dir, 'simsun.ttc')
    ).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(img_dir, 'myciyun.png'))
    itchat.send_image(os.path.join(img_dir, 'myciyun.png'), 'filehelper')

  • 相关阅读:
    oo——第三单元总结
    oo第三单元总结
    【BUAA软工】提问回顾与个人总结
    【BUAA软工】HTTP协议前后端实现及实战北航云盘爬取
    【BUAA软工】软件案例分析
    【BUAA软工】结对编程作业
    【BUAA 软工个人项目作业】玩转平面几何
    【BUAA 软工博客作业】个人博客作业
    【BUAA 软工热身作业】继往开来,勇攀高峰
    BUAA-OO-第四单元总结——终章
  • 原文地址:https://www.cnblogs.com/qiaoqianshitou/p/10543351.html
Copyright © 2011-2022 走看看