快捷搜索:  汽车  科技

python实时获取微信群聊天(QQ群聊文本可视化分析)

python实时获取微信群聊天(QQ群聊文本可视化分析)本文所使用的文本数据需要添加一些规则一般爬取数据流程如下所示分为网站请求、伪装、解析、存储四个过程更为详细的爬取流程如下所示

本文选取2018年1月1日~1月31日QQ群聊数据

利用Python做文本可视化分析

首先要获取QQ群聊的文本数据

而爬虫可以很好的实现网页数据的爬取

一般爬取数据流程如下所示

python实时获取微信群聊天(QQ群聊文本可视化分析)(1)

分为网站请求、伪装、解析、存储四个过程

更为详细的爬取流程如下所示

python实时获取微信群聊天(QQ群聊文本可视化分析)(2)

需要添加一些规则

本文所使用的文本数据

是我从QQ电脑端后台导出的

导出文本数据后

编写程序,调试代码,做可视化分析

详细代码如下所示

#QQ群聊数据分析代码 importre importdatetime importseabornassns importmatplotlib.pyplotasplt importjieba fromwordcloudimportWordCloud STOPWORDS fromscipy.miscimportimread #日期 def get_date(data): #日期 dates=re.findall(r'\d{4}-\d{2}-\d{2}' data) #天 days=[date[-2:]fordateindates] plt.subplot(221) sns.countplot(days) plt.title('Days') #周几 weekdays=[datetime.date(int(date[:4]) int(date[5:7]) int(date[-2:])).isocalendar()[-1] fordateindates] plt.subplot(222) sns.countplot(weekdays) plt.title('WeekDays') #时间 defget_time(data): times=re.findall(r'\d{2}:\d{2}:\d{2}' data) #小时 hours=[time[:2]fortimeintimes] plt.subplot(223) sns.countplot(hours order=['06' '07' '08' '09' '10' '11' '12' '13' '14' '15' '16' '17' '18' '19' '20' '21' '22' '23' '00' '01' '02' '03' '04' '05']) plt.title('Hours') 代码演示: #词云 defget_wordclound(text_data): word_list=["".join(jieba.cut(sentence))forsentenceintext_data] new_text=''.join(word_list) pic_path='QQ.jpg' mang_mask=imread(pic_path) plt.subplot(224) wordcloud=WordCloud(background_color="white" font_path='/home/shen/Downloads/fonts/msyh.ttc' mask=mang_mask stopwords=STOPWORDS).generate(new_text) plt.imshow(wordcloud) plt.axis("off") #内容及词云 defget_content(data): pa=re.compile(r'\d{4}-\d{2}-\d{2}.*?\(\d \)\n(.*?)\n\n' re.DOTALL) content=re.findall(pa data) get_wordclound(content) defrun(): filename='新建文本文档.txt' with open(filename) as f: data=f.read() get_date(data) get_time(data) get_content(data) plt.show()

python实时获取微信群聊天(QQ群聊文本可视化分析)(3)

做出文本可视话图后,可以得出如下结论

在2018年1月1日~1月31日统计180班群聊中

1月2日这一天群聊次数最多

每周的星期二群聊次数做多

每天的16时群聊次数最多

做词云图发现

“全体成员”出现的词频最多

猜您喜欢: