itchat是一個開源的微信我的號接口,這一次就用它來來玩玩。git
在使用以前,先下載,老規矩經過 pip install itchat 便可安裝。github
想要獲取朋友圈信息,只須要幾行代碼就能夠獲取。爲減小登陸次數,將獲取到的信息保存到 json 文件中便可。json
itchat.login() # 經過二維碼鏈接登陸帳號 friend_msg = itchat.get_friends(update=True)[0:] # 獲取微信好友信息 # 將微信好友信息保存起來,減小登陸的次數 with open('./friend_message.json', 'w', encoding='utf-8') as file: json.dump(friend_msg, file, ensure_ascii=False) file.close()
咱們只須要關注裏面其中的主要信息,按照需求獲取。因爲只是玩玩而已,就只單單獲取性別和城市信息。微信
先獲取性別信息app
def get_gender(message): sex_dic = {} sex_list = [] for i in range(1, len(message)): sex = message[i]['Sex'] if sex == 1: sex_dic['Male'] = sex_dic.get('Male', 0) + 1 sex_list.append("男") elif sex == 2: sex_dic['Female'] = sex_dic.get('Female', 0) + 1 sex_list.append("女") else: sex_dic['Unknown'] = sex_dic.get('Unknown', 0) + 1 sex_list.append("Unknown") return sex_dic, sex_list
再獲取城市信息spa
def get_city(message): city_list = [] for i in range(1, len(message)): city = message[i]['City'] if city == '': city_list.append(None) else: city_list.append(city) return city_list
將性別繪製成餅狀圖,城市分佈繪製成柱狀圖。具體繪製的代碼就不上了,詳情請前往 GitHub3d
with open("./friend_message.json", 'r', encoding='utf-8') as file: f_msg = json.load(file) file.close() sex_dic, sex_list = getData.get_gender(f_msg) city_list = getData.get_city(f_msg) # 將三個屬性組成 DataFrame data = pd.DataFrame({'gender': sex_list, 'city': city_list}) # 獲取城市前十的數量 city_dict = data['city'].value_counts()[:15].to_dict() # 繪製性別環狀圖 draw_pie(sex_dic) # 繪製城市柱狀圖 draw_bar(city_dict)
說實話,這裏面的男生絕對大部分是在大學認識的,畢竟理工科學校可不是鬧着玩兒的;還有這 6.58% 不明性別的人不知道怎麼設置的,爲何我沒辦法不設置,仍是說......code
做爲一個在東莞上學的廣東汕頭人,這樣的分佈確實是在乎料之中。畢竟汕頭是我生活了那麼久的地方,在東莞也快度過三個年頭了,不知不覺要大四了,最近的壓力已經逐漸增長了,無力吐槽。blog
這只是玩玩而已,若是你有什麼腦洞或者想要挖掘更多我的好友信息,可使用 itchat 接着玩。接口