歡迎光臨
每天分享高質量文章

用Python偷看一下你的微信好友都是什麼樣的人,再給他們自動發訊息

導讀:看完本文,你可以瞭解到:


  1. 一些視覺化工具的使用(pyecharts)

  2. python圖片工具PIL庫的使用

  3. 自然語言處理工具包結巴分詞的使用

  4. 爬蟲的基礎知識

  5. 微信網頁api工具itchat的使用


先告訴大家這份程式碼能幹嘛——


  1. 統計好友的性別

  2. 統計好友的地域分佈,並且視覺化在地圖上展示

  3. 將好友的暱稱做成詞雲

  4. 統計好友個性簽名中的高頻詞彙

  5. 將所有好友的頭像合併成一張大圖

  6. 微信自動傳送與回覆訊息

  7. 擴充套件功能

作者:二胖

來源:大資料前沿(ID:bigdataqianyan)

好了,廢話不多說,直入正題:

01 功能展示

下麵先展示一下具體的功能,這裡就用本文作者二胖自己的微信來進行展示啦。

1. 統計好友性別

以上就是二胖的微信好友啦,一共有306人,嗯,不多。其中男性佔據60%,沒辦法,理工科學校的男生就是這樣,其他這一類人表示的是並未填寫性別資訊的好友。

2. 統計好友地域分佈

第二個功能是統計你的微信好友在資訊中填寫的個人位置資訊,下圖是二胖的好友的位置分佈:

可以看到,二胖的好友中有很大一部分人在北京,是因為二胖大學在北京念書,現在也在北京工作。

當然,條形圖能形象地展示各個地區之間的人數差別,但是展示的資訊並不全面,也不那麼直觀,所以二胖又做了一個地圖的視覺化,如下圖所示:顏色越暖代表這個地方的好友越多:

3. 將好友的暱稱做成詞雲

我們和微信好友聊天的時候,看見的基本都是我們對他們的備註名,很好有人去關心他們的暱稱,說實在的,這麼一統計才知道,其實好友的暱稱還真的挺有意思,各位要是感興趣可以跑一下試試。

由於這個詞雲中含有較多的個人資訊,所以我就不放在這裡了。

4. 統計好友個性簽名中的高頻詞彙

這個功能的原理就是對每個好友的個性簽名利用自然語言處理技術提取關鍵詞,然後按照詞頻來生成詞雲,下麵詞雲中的關鍵詞個頭越大表示越多人使用,看來好友們說得最多是“自己”,“我們”。

5. 將所有好友的頭像合併成一張大圖

這其實就是用程式將好友的頭像們下載下來,然後用PIL工具合成一張大圖,看起來比較有趣,如下圖就是二胖用部分好友的頭像做的一張頭像圖:

6. 微信自動傳送與回覆訊息

這裡的自動接收訊息,二胖只做了一個簡單的demo,可以先給大家看看:

其中“機器人”,就是當前程式執行的微訊號,一段簡單的聊天:

我們可以在程式中設定好關鍵詞,然後當傳送訊息命中關鍵詞的時候就可以回覆相應的陳述句。當然這隻是簡單的示範,大家可以根據自己的需求傳送相應的訊息。

比如逢年過節可以用程式群發祝福訊息,那和用微信本身群發有什麼區別呢,區別就在於,程式可以個性化傳送訊息。

舉個例子:比如新年來了,你要給大家傳送新年祝賀。

如果你直接傳送“年年都有今日,歲歲都有今朝,祝你新年快樂。”對面接收人肯定會想到你是群發的。

那用程式有什麼不同呢,程式在遍歷你的微信好友時,可以獲取他的暱稱、備註等資訊。在傳送祝福的時候,程式可以加上暱稱、姓名等資訊,還可以隨機傳送詞庫中的祝福語。

以上祝福可以變成:“hi,鐵柱,年年都有今日,歲歲都有今朝,祝你新年快樂”。當然這都是後話了。

除此之外,對於一些做銷售相關工作的童鞋,這個功能相對更有用。因為不同的客戶可能會問到很多相似的問題,那麼把這些高頻的問題回答寫行程式就可以實現自動回答了。

目前網路上也有這樣的服務,不過二胖認為它們存在問題,1是服務需要付費,2是把微信執行在別人的平臺上不安全。

7. 擴充套件

所謂擴充套件,就是將個人微信做成一個服務,透過在程式中請求其他服務的api而獲得相應的資訊,比如獲取一些實時訊息。

舉個小例子:二胖前段時間在玩一款叫萊茨狗的遊戲,很簡單,就是使用者透過一定虛擬積分在一個平臺上買賣虛擬寵物“萊茨狗”,那麼當有低價狗出現的時候怎麼第一時間知道呢?

答案就是寫個程式進行監控,沒錯,只要有賣家拋狗,那麼只要價格和等級符合自己定的策略,就可以透過計算機篩選出這隻狗,然後把交易連結發出來。可是二胖也不能一直坐在電腦面前等啊,所以二胖選擇讓程式將資訊直接傳送到微信,這樣二胖只要帶著手機就能實時接收交易資料了,可以看看下麵的小影片: