itchat獲取微信好友信息
itchat功能很強大摹恰,網(wǎng)上有關itchat的資料很多,使用起來也很有趣硼婿。介于技術修養(yǎng)還不夠深厚锌半,本文只是介紹了冰山一角,更多更有趣的功能日后還需要多多學習加酵。
本文介紹了使用itchat接口獲取微信好友列表中男性和女性朋友的比例拳喻,以及他們的基本信息,包括地區(qū)猪腕、性別、省份钦勘、簽名等等陋葡。最后把這些好友信息寫入到csv文件中,能夠很清晰直白地做一些分析(比如自己男性朋友居多彻采,還是女性朋友居多)
參照一些資料腐缤,自己也做了一點點修改,demo如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import itchat
from pandas import DataFrame
itchat.auto_login(True)
friends = itchat.get_friends(update=True)[0:]
# print(friends)
total = len(friends[1:])#從1開始肛响,0是自己不能算
#獲取男女性朋友比例
def male_female_ratio():
male = female = other = 0 # 初始化計數(shù)器
for i in friends:
sex = i['Sex']
if sex == 1:
male += 1
elif sex == 2:
female += 1
else:
other += 1
# print('男性比例:%.2f%%' + '女性比例:%.2f%%' + '其他比例:%.2f%%' %(male/total*100,female/total*100,other/total*100))
print('男性比例:%.2f%%' %(male/total*100) + "\n" + '女性比例:%.2f%%' %(female/total*100) + "\n" + '其他比例:%.2f%%' %(other/total*100))
def get_data(arg):
data_list = []
for i in friends:
value = i[arg]
if value == 1:#1代表男/2代表女
value = '男'#這里把1/2換成了男女
data_list.append(value)
elif value == 2:
value = '女'
data_list.append(value)
elif value == 0:
value = '未知'
data_list.append(value)
else:
data_list.append(value)
return data_list
def ger_friend_msg():
import time
RemarkName = get_data('RemarkName')
NickName = get_data('NickName') # 是一個列表
City = get_data('City')
Province = get_data('Province')
Sex = get_data('Sex')
Signature = get_data('Signature')
data = {'RemarkName(備注)': RemarkName, 'Nickname(昵稱)': NickName, 'City(城市)': City, 'Province(省份)': Province,
'Sex(性別)': Sex, 'Signature(微信簽名)': Signature} # 字典岭粤,字典的value是列表
frame = DataFrame(data)
time = time.strftime("%Y-%m-%d_%H_%M_%S", time.localtime()) # 生成一個當前事件,以這個時間來命名最后地csv文件特笋,能很直白地看出最新執(zhí)行腳本的時間和最新的csv文件
file_name = time + 'data.csv'
frame.to_csv(file_name, encoding='utf_8_sig', index=True)
if __name__ == '__main__':
male_female_ratio()
ger_friend_msg()
運行環(huán)境win10+python3
最終的結果如下:
打印出的比例:
csv截圖:
這個腳本還有可以優(yōu)化的地方剃浇,后期空了再做些小優(yōu)化吧。