您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python如何獲取微信好友地區(qū)、性別、簽名信息并將結(jié)果可視化”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python如何獲取微信好友地區(qū)、性別、簽名信息并將結(jié)果可視化”吧!
使用下面兩行代碼可以做到:
itchat.auto_login(hotReload=True)
friends = itchat.get_friends(update=True)
第一行代碼是使用itchat庫登錄微信網(wǎng)頁版,它會彈出掃碼登錄界面,設(shè)置參數(shù) hotReload=True
的目的是短時間內(nèi)退出程序,再次登錄可以不用掃碼。
get_friends()返回的是一個list,里面有n個字典項,其中n等于你的微信好友數(shù),由于list類型是可序列化的,我們可以使用json庫把它保存到文件中
# 把json對象轉(zhuǎn)成字符串并保存在本地with open("data.json", "w", encoding="utf-8") as f: f.write(json.dumps(friends, indent=2, ensure_ascii=False))
其結(jié)果如下:
使用下面的代碼可以獲得所有好友的性別信息
for friend in friends: if friend["Sex"] == 0: unknow += 1 elif friend["Sex"] == 1: male += 1 else: female +=1
可視化的結(jié)果:
男同學(xué)占了大部分,女同學(xué)才占1/4,我果然是一個沒有故事的男同學(xué)。
性別未知是沒有設(shè)置性別的好友。
使用下面的代碼可以獲得所有好友的地區(qū)信息
dic_province = dict() for friend in self.friends: key = friend["Province"] if key not in dic_province.keys(): dic_province[key] = 1 else: dic_province[key] += 1 key_list = [] value_list = [] for key,value in dic_province.items(): if key == "": key = "其他地區(qū)" key_list.append(key) value_list.append(value)
可視化的結(jié)果是:
呃,好像暴露了我自己的地區(qū)。
使用下面的代碼獲得所有好友的個性簽名
all_sign = "" for friend in self.friends: sign = friend["Signature"] if len(sign)>0: # 過濾表情,否則會對詞云造成影響 emoji = re.findall("<span class=.*></span>",sign,re.S) if len(emoji) > 0: sign = sign.replace(emoji[0],"") all_sign = all_sign + sign + "\n" if os.path.exists("wc/sign.txt"): os.remove("wc/sign.txt") with open("wc/sign.txt","a+",encoding="utf-8") as f: f.write(all_sign)
使用詞云可視化的結(jié)果是
哈哈,也是一群積極向上,積極探討人生的小伙伴們呢
道理類似,不贅述了。
運行項目根目錄下的main.py文件,可以得到性別和地區(qū)可視化結(jié)果,如下圖:
如果近期沒有登錄過,程序還會讓你掃碼登錄的
如果需要可視化好友個性簽名,則還需要運行項目根目錄下wc文件夾下的wc.py文件,如下圖:
這個詞云是可以定制的,只要替換項目根目錄下wc/image下的圖片bc.png,就能修改詞云的背景,注意最好是純色背景的圖。
感謝各位的閱讀,以上就是“Python如何獲取微信好友地區(qū)、性別、簽名信息并將結(jié)果可視化”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python如何獲取微信好友地區(qū)、性別、簽名信息并將結(jié)果可視化這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。