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