使用python分析微信好友的基本信息

如今,微信已經成爲我們生活中的一部分,給我們的生活帶來了很多便利,微信於2011年產生,我本人是在2013年間開始使用,衆所周知,社交軟件中騰訊QQ是占主導地位的,但現在看來,QQ已經被逐漸捨棄,包括我也不在使用QQ了,截止到2016年第二季度,微信已經覆蓋中國 94% 以上的智能手機,月活躍用戶達到 8.06億,用戶覆蓋 200 多個國家、超過 20 種語言,今天我們來聊聊微信。

微信由深圳騰訊控股有限公司(Tencent Holdings Limited)於2010年10月籌劃啓動,由騰訊廣州研發中心產品團隊打造 。該團隊經理張小龍所帶領的團隊曾成功開發過Foxmail、QQ郵箱等互聯網項目。騰訊公司總裁馬化騰在產品策劃的郵件中確定了這款產品的名稱叫做“微信”。微信(WeChat)是騰訊公司於2011年1月21日推出的一個爲智能終端提供即時通訊服務的免費應用程序,由張小龍所帶領的騰訊廣州研發中心產品團隊打造。

口乾舌燥說了這麼多,進入主題,這篇文章主要是通過Python的itchat庫來爬取微信好友信息,主要包括'暱稱','備註','性別','省份','城市','簽名'等信息。關於itchat的信息請移步https://itchat.readthedocs.io/zh/latest/

本次微信好友分析,涉及到結巴分詞,圖表繪製,圖像處理,詞雲模塊,中文分詞等13個第三方模塊,如若沒有安裝這些模塊,可使用pip install XXX命令來安裝。

通過以上兩行簡單的代碼,運行程序掃描出現的二維碼登陸網頁微信,便可將微信好友的信息抓取下來,返回的信息是一個list,包括【Username, RemarkName, NickName,Sex,Province,City, Signature】等信息,其中Username是註冊微信是生成的一個唯一標識符,RemarkName顯示的是你好友的備註信息,NickName是好友的暱稱,Sex當然就是性別了,,Province,City就是省份和城市了,Signature代表的是個性簽名;這些信息中第一項是我自己的信息,所以下面分析時均除去我個人,從第二項開始。

當然,這樣的數據放在這裏,沒有人會去看的,也沒有價值,爬取的數據經過分析整理,可視化的展現在人們面前纔是最具價值的,纔是我們需要的。那麼,下面就開始整理數據吧,廢話不多說,直接看代碼:

通過這麼十幾行代碼已將我們需要的信息打印出來了,只是這些信息不夠直觀,密密麻麻的文字當然沒有圖標展現的更好了。

一、性別分析並展示:

微信好友中,有部分人不願意填寫性別的,故這些人的性別未知,其他人統計後發現一驚天大祕密,我的490位好友中,男性朋友有268位,女性朋友有196位,未知性別的26位,一看這數據量,居然是男性佔大多數,暴露了還是一個單身汪的悲哀,看來今年測的桃花運看來是無法實現了。

下面是圖表展示,更能說明單身汪的悲哀!!!

二、好友位置分析並展示:

好友位置主要是通過City這個字段去分析的,例如直轄市北京市區被分開統計了,結果有點不盡人意,但因初學耗時費力太大,pandas框架還未涉及,matplotlib做圖太過於繁雜,先這樣處理吧。使用Echats可直接展示出圖片,如下地址所示,將城市信息寫入數據運行即可展示出下圖。

地區生成地圖:http://www.echartsjs.com/examples/editor.html?c=bar-simple

通過此分析,暴露了小編是西北人無疑了,歡迎西北老鄉一起交流學習哦!

Echarts 展示

位置分析部分代碼

(位置分析部分代碼,完整代碼關注公衆號後臺回覆獲取)

三、個性簽名詞雲分析並展示:

個性簽名可以說是一個人一段時間的喜怒哀樂,還記得當時的QQ簽名,一段時間就會換一個,代表這那段時間的喜怒哀樂以及悲歡離合。以下通過jieba分詞和snowNLP中文分詞來分析好友簽名,jieba分詞是將個人簽名拆分開,統計出現頻率相對較高的一些關鍵詞,而中文分詞則是分析好友簽名中的感情傾向,即好友簽名整體上是表現爲正面的、負面的還是中立的,各自的比重是多少。而分詞這一塊是相對於初學者比較難的,也正是我話費大量精力和時間的地方,作爲一個初學者一個人是無法獨立完成的,上網尋找了好多資料,查看CSDN,終於找到一篇《基於Python實現的微信好友數據分析》解決了難題。分詞代碼均參考於這片文章,這裏將不再展示了,感興趣者可自行Google,若想獲取完整代碼,關注公衆號【JiekeXu之路】,ID:【JiekeXu_IT】,後臺回覆【微信分析】即可獲取本文完整代碼。

附:分詞詞雲圖

通過上圖分析,朋友圈好友還均是樂觀向上的,珍惜自己,努力的人生永遠快樂,簡單的一切纔是最好的生命。哈哈,才疏學淺遍佈下去了,請見諒!

通過柱狀圖發現,朋友圈中正面積極向上的情感分析朋友有187人,而中性情感判斷的朋友有121人,負面消極的情感分析有47人,這個結果和我們通過詞雲展示的結果基本吻合,這說明在微信好友的簽名信息中,大部分的簽名信息傳達出來都是一種積極向上的態度。朋友圈中基本上有兩類用戶,第一類用戶使用朋友圈記錄自己的生活,第二類用戶使用朋友圈輸出自己的觀點。對於第二類用戶,它並不介意別人瞭解它的過去,它更在乎它從始至終輸出的觀點是否一致。所以,不管朋友圈裏別人在或曬美食、或曬旅遊、或秀恩愛、或曬寶寶、或煲雞湯等等,在我看來這都是一種生活方式,精神層次和物質層次比你高的人羣,覺得你朋友圈裏的內容“無趣”,這是符合人類一貫的認知方式的,在大多數情況下,反而是那些和你層次差不多的人羣,對不熟悉的人或者事物妄加判斷,如果你不喜歡我朋友圈裏的內容,請直接屏蔽我就好,因爲這樣我們還可以做朋友;如果你因爲喜歡A而在我這裏和我說B不好,這就真的是三觀不合啦。我相信沒有完全興趣匹配的兩個人,即使是男女朋友或者情侶之間,總之人與人相處嘛,真誠和互相尊重是基本要求。

四、好友頭像集合

這樣也算是一個總結吧,很多人喜歡使用自己的照片作爲頭像,也有一些人選擇明星,動物,動漫,植物,甚至建築物等,各有各自的想法,各有各自的愛好,這裏不做任何評論。

先看代碼,這裏使用itchat庫的get_head_img變將好友頭像獲取下來,使用for循環遍歷,將圖片已微信名和備註名稱命名,然後將所有的圖片合成一張“allUserIMG.jpg”的圖片保存到對應目錄下。查看完整代碼,可關注公衆號【JiekeXu之路】,ID:【JiekeXu_IT】,後臺回覆【微信好友分析】即可獲取本文完整代碼。

這裏用程序將朋友圈好友的頭像下載下來,然後用PIL工具合成一張大圖,但是有部分好友頭像無法下載,不知爲何,亦或是微信號已停用或者拉黑刪除好友了,先不去理會了,不過看起來還是比較有趣的,快來找一找你在哪?

 

最後,說明一下環境配置,Windows10下使用Python3.6.2,相關的第三方庫前面已說過,這裏不做介紹。若想查看完整代碼,可關注公衆號【JiekeXu之路】,ID:【JiekeXu_IT】,後臺回覆【微信好友分析】即可獲取本文完整代碼。

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