python爬去朋友圈_利用Python爬取朋友圈数据,爬到你开始怀疑人生
人生最難的事是自我認(rèn)知,用Python爬取朋友圈數(shù)據(jù),讓我們重新審視自己,審視我們周圍的圈子。
文:朱元祿(@數(shù)據(jù)分析-jacky)
哲學(xué)的兩大問題:1、我是誰?2、我們從哪里來?
本文 jacky試圖用Python,數(shù)據(jù)化、聚類化我們的人格標(biāo)簽,試圖回答"我是誰?"這個(gè)哲學(xué)問題。
(一)確定數(shù)據(jù)源
自我認(rèn)知,很難,必須它證。
物以類聚,人以群分。每個(gè)人的社交圈,家庭圈,朋友圈的屬性,基本我們?nèi)烁竦奶卣鲗傩浴N覀兯幍碾A級(jí),在別人眼中的印象,在我們的朋友圈中都會(huì)得到印證。
朋友圈數(shù)據(jù)中最具人格屬性的因素是個(gè)性簽名,那么下面我們就把所有好友的個(gè)性簽名作為我們的研究對(duì)象,以此出發(fā)爬取數(shù)據(jù)。
(二) 使用Python的itchat 包對(duì)好友的個(gè)性簽名數(shù)據(jù)進(jìn)行分析
這里我們用到Python一個(gè)比較冷門的庫——itchat,它很好的兼容了wechat個(gè)人賬號(hào)的API接口,讓我們能更加便捷的爬取wechat數(shù)據(jù),itchat的功能很強(qiáng)大,這里我們僅用它爬取wechat中我們每個(gè)好友的個(gè)性簽名。
之后,我們要分析出自定義詞云圖中個(gè)性簽名使用的高頻詞語是什么。
最后,生成可視化詞云圖,直觀的給出洞察結(jié)果。
源代碼如下:
# coding:utf-8
import itchat
import re
itchat.login()
friends = itchat.get_friends(update=True)[0:]
tList = []
for i in friends:
signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")
rep = re.compile("1f\d.+")
signature = rep.sub("", signature)
tList.append(signature)
# 拼接字符串
text = "".join(tList)
# jieba分詞
import jieba
wordlist_jieba = jieba.cut(text, cut_all=True)
wl_space_split = " ".join(wordlist_jieba)
# wordcloud詞云
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
import os import numpy as np
import PIL.Image as Image
d= os.path.dirname(os.path.abspath( __file__ ))
alice_coloring = np.array(Image.open(os.path.join(d, "wechat.jpg")))
my_wordcloud = WordCloud(background_color="white", max_words=2000,mask=alice_coloring,max_font_size=400, random_state=420,font_path='/Users/sebastian/Library/Fonts/Arial Unicode.ttf').generate(wl_space_split)
image_colors = ImageColorGenerator(alice_coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()
下面對(duì)于代碼的解析,僅跟初學(xué) Python的朋友提示三點(diǎn):
1)代碼第24行,其他網(wǎng)絡(luò)版本的代碼為d= os.path.dirname(__file__),最好換成jacky這個(gè)版本的:
d=os.path.dirname(os.path.abspath(__file__)),具體原因jacky就不做過多解釋了;
2)代碼第25行,一定要提前在環(huán)境路徑下創(chuàng)建wechat.jpg的圖片,這樣云圖才能順利生成,并生成你希望的形狀。
3)提前在終端安裝jieba,matplotlib,wordcloud,numpy包
注意以上三點(diǎn),想不運(yùn)行成功都難。
運(yùn)行上面的代碼,得到下面的云圖:
(三)數(shù)據(jù)洞察
以jacky的朋友圈為例,在云圖中,我們可以看見,高頻詞有:自己,創(chuàng)始人,電商,成功,努力,營銷,互聯(lián)網(wǎng),數(shù)據(jù),夢想,生活,咨詢,我們,未來。
其實(shí),這些詞jacky還可以繼續(xù)用機(jī)器學(xué)習(xí)算法搞一下,但到這就淺嘗則止吧。
從這些具體的信息中,可以抽象出我的個(gè)人人格標(biāo)簽,具體解析:
自己,我們:說明我很自我,很自大,很自以為是;
努力,未來,夢想:說明我想通過努力來實(shí)現(xiàn)自己的價(jià)值;
創(chuàng)始人:說明我的社交圈還OK;
互聯(lián)網(wǎng),數(shù)據(jù):說明我的能力屬性;
營銷,咨詢:說明了我賴以生存的飯碗;
代理:這... ... 不好說了... ...
End
轉(zhuǎn)載請(qǐng)注明出處
總結(jié)
以上是生活随笔為你收集整理的python爬去朋友圈_利用Python爬取朋友圈数据,爬到你开始怀疑人生的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python快速入门课堂笔记_Pytho
- 下一篇: ddos应急处理_写给十九大安保应急的兄