Python新世界python热爱者

3个python操控微信的操作,统计好友性别、自动回复、生成词云

2018-12-09  本文已影响6人  48e0a32026ae

三个案例:

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

这里就不展示了。

上一篇下一篇

猜你喜欢

热点阅读