10分鍾教你用Python玩轉微信之抓取好友個性簽名制作詞雲


01 前言+展示

各位小伙伴我又來啦。今天帶大家玩點好玩的東西,用Python抓取我們的微信好友個性簽名,然后制作詞雲。怎樣,有趣吧~好了,下面開始干活。我知道你們還是想先看看效果的。

后台登錄:


詞雲:

02 環境准備

Python版本:3.6.0
系統平台:Windows 10 X64
IDE:pycharm

相關模塊:
re模塊;
itchat模塊;
jieba模塊;
import matplotlib.pyplot模塊;
wordcloud模塊;
以及一些Python自帶的模塊。

03 獲取個性簽名

首先要做的,當然還是登錄微信,獲取好友的個性簽名啦:

 1import itchat
2# 先登錄
3itchat.login()
4
5# 獲取好友列表
6 friends = itchat.get_friends(update=True)[0:]
7 for i in friends:
8    # 獲取個性簽名
9    signature = i["Signature"]
10print(signature)

但是獲取下來之后我們會發現,有大量的span,class,emoji,emoji1f3c3等的字段:

這是因為個性簽名中使用了表情符號,這些字段我們都是要過濾掉的,所以寫個正則和然后用replace方法去掉吧。

04 過濾掉emoji表情

這次把相關字段給replace成空格先:

1# 獲取好友列表
2friends = itchat.get_friends(update=True)[0:]
3for i in friends:
4  signature = i["Signature"].strip().replace("span""").replace("class""").replace("emoji""")# 獲取個性簽名
5  print(signature)

然后發現,還是不太妥當:

這里要借助一下re了,寫個正則把這些統統干掉:

1# 獲取好友列表
2friends = itchat.get_friends(update=True)[0:]
3for i in friends:
4  signature = i["Signature"].strip().replace("span""").replace("class""").replace("emoji""")# 獲取個性簽名
5  rep = re.compile("< =.+/>")# 正則匹配過濾掉emoji表情,例如emoji1f3c3等
6  signature = rep.sub("", signature)
7  print(signature)

為了照顧新手朋友,這里直接用了最簡單的正則形式,把尖括號兩端的直接匹配然后干掉,不過一般不推薦這樣干。推薦用這樣的表達式rep = re.compile("[^\u4e00-\u9fa5^]")。關於正則和re大家還是自己去找資料學習吧。然后perfect了:

05 制作詞雲

接來下用jieba分詞,然后制作成詞雲,在此之前記得安裝jieba和wordcloud庫。

 1 # jieba分詞
2 wordlist_jieba = jieba.cut(text, cut_all=True)
3 wl_space_split = " ".join(wordlist_jieba)
4
5 # 這里要選擇字體存放路徑,win的字體在windows/Fonts中
6 # #如果是中文必須要添加字體路徑,否則會顯示成框框
7 my_wordcloud = WordCloud(background_color="white", width=1600, height=1200,
8                         font_path='C:\Windows\Fonts\蘋方\PingFang Bold_0.ttf').generate(wl_space_split)
9
10plt.imshow(my_wordcloud)
11plt.axis("off")
12plt.show()

記得要設置好中文路徑哦。

效果圖:

06 完整代碼

欲獲取代碼,請關注我們的微信公眾號【程序猿聲】,在后台回復:pycode02。即可獲取。

微信公眾號微信公眾號

推薦文章:10分鍾教你用Python做個打飛機小游戲超詳細教程
推薦文章:10分鍾教你用python下載和拼接微信好友頭像圖片


免責聲明!

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



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