'''
微信字段:Nickname昵称,remarkName,备注,Sex,性别,Signature个性签名,'Province': '云南', 'City': '昆明'
'''import itchatimport 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 middleclass 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()