• 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')

  • 相关阅读:
    夏天里的敏捷:10月底总结会议笔记【问题笔记】
    如何给项目里面每个功能点设权限?
    操作svn汉化
    夏天里的敏捷[1]:搬家记
    如何去读一个有50万行代码的项目?
    如何去定位你在调用哪个function()?
    小鸡和代码代码重构[2]:MOVE METHOD
    SVN版本管理随笔
    .NET服务器端控件绑定数据源的问题
    看视频笔记1【wpf】
  • 原文地址:https://www.cnblogs.com/qiaoqianshitou/p/10543351.html
Copyright © 2020-2023  润新知