Python:導出QQ聊天記錄-讓我們看看逗比羣友都在聊什麼

qq技術羣,一羣逗比天天不聊技術,都在摸魚,未讀消息動不動就99+,絲毫不考慮我這電腦內存小的怎麼辦。來,讓我們看看這羣逗比羣友整天都在聊什麼。

一、導出QQ聊天文件

手機上或者Mac上的QQ數據庫是加密的,但是手機備份出來的卻是明文的數據,所以我們直接用最簡單的,從備份拿數據,我這裏用愛思助手搞了。
在這裏插入圖片描述

  1. 打開愛思助手然後點擊 工具箱->備份/恢復數據->選擇全備份,然後等幾分鐘備份完成,打開全備份文件管理。
  2. 點擊立即查看在這裏插入圖片描述
  3. 列表有一個APPDomain-com.tencent.mqq的文件夾 ,賬號數據路徑爲
     /AppDomain-com.tencent.mqq/Documents/contents/xxQQ賬號xxx/QQ.db
    
  4. 然後用支持SQlite的軟件 Navicat Premium 或者 DB Browser for SQLite打開QQ.db。
    在這裏插入圖片描述
  5. 其中表名爲tb_c2cMsg_xxxxQQ賬號xxx的表,是單對單的聊天信息,tb_TroopMsg_xxx羣號xxx的表,是羣聊天的記錄。
  6. 我們就選話最多的那個羣號,然後找出來對應的表,選擇導出全部數據。
    在這裏插入圖片描述
    7.編碼選擇UTF-8,導出字段不用選擇全部字段,只用選擇strMsg字段,然後一直點擊下一步就可以了。
    在這裏插入圖片描述
    8.導出成功
    在這裏插入圖片描述
二、jieba分詞
import jieba
import re

# 對聊天記錄文件進行分詞
def cut_words():
    # 把聊天內容讀取給content
    fp = open("qqjilu.txt", "r", encoding="utf-8")
    content = fp.read()
    fp.close()
    #過濾img標籤
    content=re.compile('<\s*img[^>]*>[^<]*<\s*/\s*img\s*>',re.I).sub('',content)#將br轉換爲換行

    jieba.enable_paddle()
    jieba.load_userdict("dict.txt")
    words = jieba.cut(content,  cut_all=False)     # 使用精確模式對文本進行分詞
    counts = {}     # 通過鍵值對的形式存儲詞語及其出現的次數
    for word in words:
        if  len(word) == 1:    # 單個詞語不計算在內
             continue
        else:
             counts[word] = counts.get(word, 0) + 1    # 遍歷所有詞語,每出現一次其對應的值加 1
    items = list(counts.items())#將鍵值對轉換成列表
    items.sort(key=lambda x: x[1], reverse=True)    # 根據詞語出現的次數進行從大到小排序

    for i in range(15):
        word, count = items[i]
        print("{0:<5}{1:>5}".format(word, count))

if __name__ == "__main__":
    cut_words()

打印結果:
在這裏插入圖片描述

三、總結

一羣逗比羣友,天天不敲代碼,只知道開車。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章