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时群聊次数最多

做词云图发现

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

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页