python探索微信朋友信息


 一、itchat

  itchat是一個開源的微信個人號接口,這一次就用它來來玩玩。

  在使用之前,先下載,老規矩通過 pip install itchat 即可安裝。

  想要獲取朋友圈信息,只需要幾行代碼就可以獲取。為減少登錄次數,將獲取到的信息保存到 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()

二、讀取文件獲取信息

  我們只需要關注里面其中的主要信息,按照需求獲取。由於只是玩玩而已,就只單單獲取性別和城市信息。

  先獲取性別信息

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

  再獲取城市信息

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

三、可視化

  將性別繪制成餅狀圖,城市分布繪制成柱狀圖。具體繪制的代碼就不上了,詳情請前往 GitHub

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% 不明性別的人不知道怎么設置的,為什么我沒辦法不設置,還是說......

        

  作為一個在東莞上學的廣東汕頭人,這樣的分布確實是在意料之中。畢竟汕頭是我生活了那么久的地方,在東莞也快度過三個年頭了,不知不覺要大四了,最近的壓力已經逐漸增加了,無力吐槽。

 

  這只是玩玩而已,如果你有什么腦洞或者想要挖掘更多個人好友信息,可以使用 itchat 接着玩。


免責聲明!

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



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