Python篇-itchat獲取微信好友信息

itchat獲取微信好友信息

itchat功能很強大,網(wǎng)上有關(guān)itchat的資料很多,使用起來也很有趣。介于技術(shù)修養(yǎng)還不夠深厚,本文只是介紹了冰山一角,更多更有趣的功能日后還需要多多學(xué)習(xí)。
本文介紹了使用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())  # 生成一個當(dāng)前事件,以這個時間來命名最后地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
最終的結(jié)果如下:
打印出的比例:


比例

csv截圖:


在這里插入圖片描述

這個腳本還有可以優(yōu)化的地方,后期空了再做些小優(yōu)化吧。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容