Python与微信——itchat包

目录

  • itchat

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

三微信设置自动回复

import itchatimport time# 自动回复# 封装好的装饰器,当接收到的消息是Text@itchat.msg_register('Text')def text_reply(msg): # 当消息不是由自己发出 if not msg['FromUserName'] == myUserName: # 发送一条提示给文件助手 itchat.send_msg(u'[%s]收到好友@%s的信息:%sn'%(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(msg['CreateTime'])), msg['User']['NickName'], msg['Text'] ), 'filehelper') # 回复给好友 return u'[自动回复]您好,我现在有事不在,一会再和您联系。n已经收到您的的信息:%sn' % (msg['Text'])if __name__ == "__main__": itchat.auto_login() # 获取自己的UserName myUserName = itchat.get_friends(update=True)[0]['UserName'] itchat.run()

四好友头像拼接

import itchatimport mathimport PIL.Image as PImageimport osImg_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 = 0for 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+=1ls = 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 = 0y = 0for 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 += 1img_path = os.path.join(all_img_dir, 'all.png')image.save(img_path)itchat.send_image(img_path, 'filehelper')

五微信个性签名词云

import itchatimport re# jieba分词import jieba# wordcloud词云from wordcloud import WordCloud, ImageColorGeneratorimport matplotlib.pyplot as pltimport PIL.Image as Imageimport osimport 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')

相关文章