手把手教你用Python分析微信聊天內容


在開始之前, 先簡單說下我為何會寫這篇文章?

為了開發新客戶, 領導安排公司的客服們加入了很多的微信群, 在群內收集目標客戶的聯系方式.

然而她們收集客戶信息的方式非常的原始: 在微信群內翻看群聊記錄 -> 尋找客戶發出的電話號碼 -> 復制 -> 打開公司內部APP -> 填寫表單 -> 粘貼客戶電話號碼 -> 提交 -> 繼續翻看群聊記錄.
如此這般循環往復. 效率低且枯燥.
我覺得客服小姐姐們, 肯定是很不樂意做這項工作的.

所以我向領導提議, 用代碼來實現這個工作.
目前, 上面的這個流程我已經用代碼實現了, 為了記錄實現的過程, 就有了這篇文章.

希望對遇到類似需求的您, 能夠有所幫助.

本文目錄

  1. 介紹需要用到的工具
  2. 備份手機資料並導出微信聊天記錄數據
  3. 使用DB Browser查看微信聊天數據
  4. 用Python讀取聊天數據
  5. 總結

1. 需要用到的工具

俗話說, 工欲善其事, 必先利其器. 合適的工具, 往往能夠事半功倍.
這里用到的工具有:

名稱 備注
iPhone手機 抱歉, 我沒有安卓手機, 所有沒有在安卓機上進行測試
iTunes軟件 用來備份iPhone手機數據, 備份時, 一定要選擇"不加密"備份, 否則數據無法讀取
iPhone Backup Extractor 用來導出微信數據庫, 雖然是收費軟件, 但是其免費的功能在這里已經夠用了
DB Browser for SQLite 免費的數據庫可視化軟件, 用來查看sqlite數據庫
Python 3.7 os, sqlite3, re, pymysql, emoji

2. 備份手機資料並導出微信聊天記錄數據

2.1 備份手機資料到iTunes

用數據線把iPhone連接至電腦, 打開iTunes進行備份.
不要勾選"加密備份"

2.2 導出聊天記錄數據

這一步需要借助一個軟件iPhone Backup Extractor.

這個軟件雖然收費, 但是其免費功能對我們來說已經夠用了.
打開這個軟件, 可以看到如下界面:

通過上圖可以看到:
左側是已經備份的iPhone手機列表
右側選擇expert mode, 稍等一會兒之后, 就會看到軟件右側區域顯示了備份文件的目錄結構.

那么, 我們需要備份的文件是什么?在哪里呢?

我們需要導出的文件是: MM.sqlite, WCDB_Contact.sqlite

其中 MM.sqlite是存放微信聊天內容相關的數據, WCDB_Contact.sqlite是微信聯系人相關的數據.

文件路徑是: Applications/com.tencent.xin/微信名稱MD5/DB/

按照圖片的標注, 選中這兩個文件, 然后點擊Extract selected按鈕, 進行文件的導出.
免費版的軟件, 在導出文件之前, 需要等待10s.

文件導出的速度很快, 幾乎不用等待.這個時候打開桌面, 就可以看到導出后的文件了.

3. 使用DB Browser查看微信聊天數據

首先安裝數據庫可視化工具DB Browser for SQLite, 點擊下載

打開這個軟件, 點擊打開數據庫

選中導出后的文件MM.sqlite:

打開文件之后, 點擊瀏覽數據, 然后在下拉框里可以快速切換不同的表.
其中, 以Chat開頭的表, 就是存放聊天記錄的表. Message字段就是聊天內容.

接着, 我們再打開另外一個文件WCDB_Contact.sqlite:

切換到Friend這張表, 可以看到如下字段.
其中, dbContactRemark字段應該就是聯系人的備注;
userName就是聯系人的微信名稱, 其中名稱帶有@chatroom的, 表示這是一個微信群聊;

好了, 現在我們已經找到了微信聊天記錄, 也找到了微信聯系人, 就可以開始用Python進行處理了.

4. 用Python讀取聊天記錄內容

實現過程很簡單, 我看了自己的代碼, 總共不到100行, 所以代碼就不貼出來了, 因為寫的很爛 - . -
只簡單說下思路吧.

  1. 連接這兩個導出的數據庫.
  2. 循環遍歷其中的表.
  3. 遍歷每一條聊天內容,並用正則表達式匹配其中的電話號碼.
  4. 如果該條聊天記錄存在電話號碼,則寫入自己的數據庫. 寫入的字段有 電話號碼, 微信昵稱, 聊天內容, 發送時間

大概就是以上這些.

5. 總結

整個過程的實現還是比較快的, 大概花了半個工作日.
代碼雖然簡單, 卻實實在在給公司節省了不少的人力成本, 還是蠻有成就感的.

我自己的體會: 要多觀察周圍的生活, 找到其中重復勞作的部分, 並用程序去優化, 可能這就是做程序員的樂趣所在.

6. 個人博客

ps: 前幾天跟風, 用閑置服務器搭建了一個博客小碎銀, 來瞅一眼吧😁


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM