3个python操控微信的操作,统计好友性别、自动回复、生成词云
三个案例:
python实现统计好友性别比
以及统计个性签名,生成词云
python实现简单的自动回复
当然在学习Python的道路上肯定会困难,没有好的学习资料,怎么去学习呢?
学习Python中有不明白推荐加入交流群
号:960410445
群里有志同道合的小伙伴,互帮互助,
群里有不错的视频学习教程和PDF!
1.python实现统计好友性别比
小提示:要提前准备好运行环境和引入相关库哦
#想统计下自己微信里好友的性别比例,当然也是很简单,
#先获取好友列表,统计列表里性别计数
import itchat
# 先登录
itchat.login()
# 获取好友列表
friends = itchat.get_friends(update=True)[0:]
# 初始化计数器,有男有女,当然,有些人是不填的
male = female = other = 0
# 遍历这个列表,列表里第一位是自己,所以从"自己"之后开始计算
# 1表示男性,2女性
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 u"男性好友:%.2f%%" % (float(male) / total * 100)
print u"女性好友:%.2f%%" % (float(female) / total * 100)
print u"其他:%.2f%%" % (float(other) / total * 100)
结果:
2.以及统计个性签名,生成词云
我们先看一下代码吧
1
重点部分会加粗哦
#用jieba分词,然后制作成词云,首先要安装jieba和wordcloud库
# pip install jieba
# pip install wordcloud
# coding:utf-8
import itchat
#要安装这里的库哦
import re
itchat.login()
friends = itchat.get_friends(update=True)[0:]
tList = []
for i in friends:
signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")
rep = re.compile("1fd.+")
signature = rep.sub("", signature)
tList.append(signature)
# 拼接字符串
text = "".join(tList)
# jieba分词
import jieba
wordlist_jieba = jieba.cut(text, cut_all=True)
wl_space_split = " ".join(wordlist_jieba)
# wordcloud词云
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
import os
import numpy as np
import PIL.Image as Image
d = os.path.dirname(__file__)
alice_coloring = np.array(Image.open(os.path.join(d, "wechat.jpg")))
my_wordcloud = WordCloud(background_color="white", max_words=2000, mask=alice_coloring,
max_font_size=40, random_state=42,
font_path='C:WindowsFontsARIALUNI.TTF')
.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(d, "wechat_cloud.png"))
itchat.send_image("wechat_cloud.png", 'filehelper')
说一下第一个加粗的部分“wechat.jpg”,这是一张图片,位置放在桌面,并且图片里的形状决定了词云的形状,比如此例中用了微信的
logo,就生成了这种形状的词云。
然后说一下第二个加粗的部分,这是一个字体的路径,windows和mac os不一样哦,这里用的是windows的字体库,下图标识了字体库的位置和名称。一般都是这个路径哦,不同的请自行修改。
就在这了:
让我们看一下结果吧
这是原始的生成结果:
这是加上微信logo后的图片,也就是上述代码的结果
第三个是最有趣的一个了
3.python实现简单的自动回复
废话不说,先上代码。代码很简洁
安装相关库就行了,直接运行
# coding:utf-8
import itchat
from itchat.content import*
import re
@itchat.msg_register([TEXT])
def text_reply(msg):
print('msg:%s'%msg['Text'])
match = re.search('',msg['Text']).span()
print("~~~~~")
if match:
itchat.send('[自动回复]你好☺,微信内部测试中......,请稍后联系!',msg['FromUserName'])
#二维码
itchat.auto_login(hotReload=True)
itchat.run()
在成功执行以后,可以让小伙伴给你回复任意信息哦。然后就会看到下列界面:
逼格很高吧
4.额外加赠
如果你怕别人联系你任何消息都自动回复,
则可以制定包含关键字自动回复,要先安装相关库哦
# encoding = utf8
import itchat,time,re
from itchat.content import *
# 如果对方发的是文字,则我们给对方回复以下的东西
@itchat.msg_register([TEXT])
def text_reply(msg):
match = re.search('在吗',msg['Text'])
#这里“在吗”就是关键字,你可以自行修改
if match:
itchat.send(('【自动回复】,正在忙,请稍后联系'),msg['FromUserName'])
# 如果对方发送的是图片,音频,视频和分享的东西我们都做出以下回复。
@itchat.msg_register([PICTURE,RECORDING,VIDEO,SHARING])
def other_reply(msg):
itchat.send(('【自动回复】,请稍后联系'),msg['FromUserName'])
itchat.auto_login(hotReload=True)
itchat.run()
这里就不展示了。