天天看點

掃二維碼登陸微信 統計微信男女比例并繪圖掃二維碼登陸微信 統計微信男女比例并繪圖登陸微信 查詢好友所有資訊

掃二維碼登陸微信 統計微信男女比例并繪圖

import itchat
import pickle
import matplotlib.pyplot as plt 

itchat.login()  # 會自動彈出一個二維碼,手機微信掃描授權網頁版登入後方可爬取相關資訊

my_friends = itchat.get_friends(update=True)[0:]    # 擷取通訊錄好友的資訊,傳回一個好友資訊的字典

# 持久化儲存資料,統計好友相關資訊時無需再次掃碼登入
with open('../data/my_friends.pickle', 'wb') as e:
    pickle.dump(my_friends, e)


def statistic_friends_sex(friends_dict):
    """
    該函數功能為實作 friends_dict 中性别統計
    """
    result = [0, 0, 0]
    for friend in friends_dict[1:]:
        # 好友清單第一個是自己,是以統計真正好友要從第二個開始
        sex = friend['Sex']
        if sex == 1:
            result[0] += 1
        elif sex == 2:
            result[1] += 1
        else:
            result[2] += 1

    return result

def sex_pie_chart(sex_num):
    """
    該函數功能為實作畫出性别統計的餅圖
    """
    labels = ['男', '女', '不明']
    colors = ['green', 'pink', 'yellow']
    #設定字型樣式
    plt.rcParams['font.family']='sans-serif'
    plt.rcParams['font.sans-serif']=[u'SimHei']
    
    plt.pie(sex_num, colors=colors, labels=labels, autopct='%1.1f%%', pctdistance=0.8)
    plt.title(u"你的微信好友性别情況", bbox={'facecolor': '0.8', 'pad': 5})
    plt.show()
    
with open('../data/my_friends.pickle', 'rb') as e:
    my_friends = pickle.load(e)

statistic_result = statistic_friends_sex(my_friends)

print("男性好友人數:", statistic_result[0], "\n" +
      "女性好友人數:", statistic_result[1], "\n" +
      "不明性别好友:", statistic_result[2])

sex_pie_chart(statistic_result)
           

登陸微信 查詢好友所有資訊

import itchat

searchName = input('輸入要查詢的名字:')
itchat.auto_login(hotReload=True) 
friends = itchat.get_friends(update=True)[0:]
for i in friends:
    if i['NickName']== str(searchName) or i['RemarkName']== str(searchName):
         print(i)