掃二維碼登陸微信 統計微信男女比例并繪圖
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)