本文的最終目的是將手機微信的聊天記錄導出到電腦裏,變成txt文本文件,而後對其進行分析。java
網上有一些工具也能夠完成這個功能,可是基本都是付費的。手動操做的話,找了不少的博客,基本沒有徹底有效的。最終找到一篇很靠譜的教程:傳送門,本文基本參考這篇進行整理。python
首先上個人github把全部須要的文件下載下來:git
https://github.com/godweiyang/wechat-exploregithub
,用法稍後說明。
算法
導出手機微信數據庫
首先要作的第一步就是將手機端的微信數據庫 .db
文件導出到電腦上。sql
小米手機
小米的話作法很簡單,不須要進行root。數據庫
首先進入手機的
設置-更多設置-備份和重置-本地備份
,輸入密碼,點擊新建備份
,把兩個勾去掉,點擊軟件程序右邊的尖括號,選擇微信,點擊肯定,點擊開始備份,等待完成就好了。 微信而後將手機鏈接電腦,打開手機目錄下的
MIUI/backup/AllBackup/yyyymmdd_xxxxxx/
文件夾,將.bak
文件拷貝到電腦上,我這裏重命名爲了com.tencent.mm.bak
。 app而後用任意一種壓縮包軟件(我用的是7zip)打開這個
com.tencent.mm.bak
文件,而且將apps\com.tencent.mm\r\MicroMsg\systemInfo.cfg
、apps\com.tencent.mm\r\MicroMsg\CompatibleInfo.cfg
和apps\com.tencent.mm\r\MicroMsg\xxxx\EnMicroMsg.db
三個文件解壓到電腦上。這裏xxxx是一串隨機的字母,表明你的微信用戶,每一個人不同,通常是最大的那個文件夾,我這裏是下圖所示文件夾: 工具
其餘手機通用作法
其餘手機可能沒有這麼方便,一種辦法是root以後去 /data/data/com.tencent.mm/MicroMsg
下面找這三個文件,可是不少人是不會去root的,因此介紹另外一種方法。
首先電腦上安裝一款安卓模擬器,而後裏面下載手機微信並登陸,最重要的一步就是將手機端聊天記錄備份到電腦端微信,而後將電腦端聊天記錄恢復到安卓虛擬器裏的微信,這個功能是微信自帶的,應該沒有什麼難度。
而後對安卓虛擬器進行root,這個也是設置裏就有的,最後就能把三個文件都拷貝到電腦上了。
破解數據庫密碼
將上面的全部文件所有放在一個目錄下。
而後命令行運行以下代碼:
javac IMEI.javajava IMEI systemInfo.cfg CompatibleInfo.cfg
第三行就是數據庫的密碼了。
導出聊天記錄
而後打開
sqlcipher.exe
軟件,用它打開EnMicroMsg.db
數據庫,輸入第五步獲得的密碼。這時候會顯示出不少的表格,點擊菜單欄的
File-Export-TableasCSV file
,選擇message
表,並導出。若是直接用excel打開這個表格,可能會顯示亂碼。因此新建一個excel表格,點擊
數據-來自文本
,而後導入這個.csv
文件。彈出的框裏,第一個下拉框選擇
GB2312
,而後載入,這時候就不亂碼了。而後在
talker
一列選擇你想要篩選的聊天對象,單擊content
列並複製到message.txt
文本中。最後命令行運行下面代碼去除無效信息:
python3 process_wechat.py message.txt
這時候會產生一個 __message.txt
,就是處理完的聊天記錄了。
生成詞雲
這個上一篇博客已經講過了,能夠去看看:
https://godweiyang.com/2019/07/27/wordcloud/
最後的效果如圖所示
本文分享自微信公衆號 - 算法碼上來(GodNLP)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。