python微信朋友圈刷图_用python中的itchat可视化微信朋友圈

itchat是python与微信网页版连接的api,作为测试,博主利用itchat爬取了自己的微信并进行可视化

首先登录微信,定义函数用来储存好友信息

import itchat

import matplotlib.pyplot as plt

import pandas as pd

import re

import jieba

from pyecharts import Map,Geo

'''遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!'''

itchat.login()

friends=itchat.get_friends(update=True)

#定义函数从朋友圈中爬取信息

def get_var(var):

variable = []

for i in friends:

value = i[var]

variable.append(value)

return variable

计算好友圈性别比例,画一个饼状图

#初始化计数器

male = female = other = 0

#friends[0]是自己的信息,所以要从friends[1]开始

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:])

a=float(male)/total*100

b=float(female) / total * 100

c=float(other) / total * 100

#就朋友圈性别比例做一个饼状图

x=[a,b,c]

label=['male','female','other']

plt.pie(x=x,labels=label,autopct='%3.1f %%',shadow=True, labeldistance=1.1, startangle = 90,pctdistance = 0.6)

plt.show()

获取好友所在地区,做地图可视化

#爬取微信好友所在地区

Province = get_var('Province')

data=pd.DataFrame({'prv':Province,'nu':1})

data=data.loc[data['prv']!='',:]

data=data.groupby(['prv']).sum().sort_values(by='nu')

provice=data.index.tolist()

values=data.values.tolist()

#将好友所在地区分布作一个地图可视化

map = Map("微信好友地区分布",'微信好友地区分布', width=1200, height=600)

map.add("", provice, values, visual_range=[0, 50], maptype='china', is_visualmap=True,

visual_text_color='#000')

map.show_config()

map.render(path="D:/04-01中国地图.html")

可视化结果

获取好友个性签名,分词并统计词频,保存为csv文件

# 爬取好友的个性签名

siglist = []

for i in friends:

signature = i["Signature"].strip().replace("span", "").replace("class", "").replace("emoji", "")

rep= re.compile("1f\d+\w*|[<>/=]")

signature = rep.sub("", signature)

siglist.append(signature)

text = "".join(siglist)

#中文分词

wordlist = jieba.cut(text, cut_all=True)

word_space_split = ",".join(wordlist).split(',')

#去掉所有停用词

ph=open("C:/Users/Administrator/Desktop/tyc.txt","rb")

tyc=str(ph.read().decode('utf-8'))

ph.close()

m=[]

for i in word_space_split:

if i not in tyc:

m.append(i)

#统计词频并保存为csv文件

da=pd.DataFrame({'ci':m,'nu':1})

da=da.groupby(['ci']).sum().sort_values(by='nu',ascending=False)

da.to_csv('d:/qianming.csv')

表格的前五行如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值