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,Sexfor 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)/total100))
print("其他:%.2f%%"%(float(other)/total*100))
<h4 class='title'>三微信设置自动回复</h4>
import itchat
import time
@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, (xeach_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
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')