当前位置: 首页 > 工具软件 > ItChat > 使用案例 >

python安装itchat包_Python与微信——itchat包

锺博耘
2023-12-01

itchat

一安装itchat

pip install itchat

pip install echarts-python

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

import itchat

# 登录

itchat.login()

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

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

二微信好友性别比例

# 获取好友列表

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)/total*100))

print("女性好友:%.2f%%"%(float(female)/total*100))

print("其他:%.2f%%"%(float(other)/total*100))

三微信设置自动回复

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\n'%(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(msg['CreateTime'])),

msg['User']['NickName'],

msg['Text']

),

'filehelper')

# 回复给好友

return u'[自动回复]您好,我现在有事不在,一会再和您联系。\n已经收到您的的信息:%s\n' % (msg['Text'])

if __name__ == "__main__":

itchat.auto_login()

# 获取自己的UserName

myUserName = itchat.get_friends(update=True)[0]['UserName']

itchat.run()

四好友头像拼接

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(640*640)/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')

五微信个性签名词云

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("1f\d.+")

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

 类似资料: