python获取pc微信好友列表_python使用itchat获取微信好友列表

本文展示了如何使用Python的itchat库登录微信并获取好友列表,包括昵称、性别等信息。通过定义一个装饰器来记录日志,并对获取的好友属性进行统计,如男性、女性及未知性别的数量。
摘要由CSDN通过智能技术生成

'''

微信字段:Nickname昵称,remarkName,备注,Sex,性别,Signature个性签名,'Province': '云南', 'City': '昆明'

'''

import itchat

import logging

logging.basicConfig(filename="", level=logging.INFO)

#一个带参数的装饰器,类装饰器,语法糖效果等同于foo = timeit(foo)

def log_print(new_var):

def middle(func):

def wrapper(*args, **kwargs):

logging.info("start print {} ...".format(new_var))

try:

return func(*args,**kwargs)

except Exception as e:

pass

logging.info("{} print end...".format(new_var))

return wrapper

return middle

class PythonWechat(object):

def __init__(self):

self.___nickname = list()

self.__sex = list()

self.all_friends = list()

def login_wechat(self):

itchat.auto_login(hotReload=True)

logging.info("login successfully")

def get_friend(self):

'''获取全部好友'''

self.all_friends = itchat.get_friends(update=True)[1:]

logging.info("already get all friends")

return self.all_friends

def get_attribute(self,var):

total_list = list()

for i,j in enumerate(self.all_friends):

# logging.info(j)

one_attribute = j[var]

# logging.info(j[var])

total_list.append(one_attribute)

return total_list

@log_print("nickname")

def get_nickname(self):

'''获取昵称'''

self.___nickname = self.get_attribute("NickName")

@log_print("sex")

def get_sex(self):

'''获取性别'''

self.__sex = self.get_attribute("Sex")

man,woman,not_man_woman = 0,0,0

for sex_split in self.__sex:

if sex_split == 0:

woman += 1

elif sex_split == 1:

man += 1

elif sex_split == 2:

not_man_woman += 1

logging.info("have already get all man's sex")

return man, woman, not_man_woman

def main(self):

self.login_wechat()

self.get_friend()

man_num, woman_num, not_man_woman_num = self.get_sex()

logging.info("man have {},woman have {},people that not konw have {}.".format(man_num,woman_num,not_man_woman_num))

if __name__ == '__main__':

pw = PythonWechat()

pw.main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值