參考來自:https://itchat.readthedocs.io/zh/latest/api/
#coding=utf-8import itchatfrom itchat.content import TEXTfrom itchat.content import *import sysimport timeimport rereload(sys)sys.setdefaultencoding('utf8')import os@itchat.msg_register([TEXT,PICTURE,FRIENDS,CARD,MAP,SHARING,RECORDING,ATTACHMENT,VIDEO],isGroupChat=True)def receive_msg(msg): groups = itchat.get_chatrooms(update=True) friends = itchat.get_friends(update=True) print "群數量:",len(groups) for i in range(0,len(groups)): print i+1,"--",groups[i]['NickName'],groups[i]['MemberCount'],"人" print "好友數量",len(friends)-1 for f in range(1,len(friends)):#第0個好友是自己,不統計 if friends[f]['RemarkName']: # 優先使用好友的備注名稱,沒有則使用昵稱  user_name = friends[f]['RemarkName'] else:  user_name = friends[f]['NickName'] sex = friends[f]['Sex'] print f,"--",user_name,sexitchat.auto_login(hotReload=True)itchat.run()效果:

好友:
# 獲取自己的用戶信息,返回自己的屬性字典itchat.search_friends()# 獲取特定UserName的用戶信息itchat.search_friends(userName='@abcdefg1234567')# 獲取任何一項等于name鍵值的用戶itchat.search_friends(name='wxceshi')# 獲取分別對應相應鍵值的用戶itchat.search_friends(wechatAccount='wceshi')# 三、四項功能可以一同使用itchat.search_friends(name='wxceshi', wechatAccount='wcceshi')
公眾號:
公眾號的獲取方法為get_mps,將會返回完整的公眾號列表。其中每個公眾號為一個字典傳入update鍵為True將可以更新公眾號列表并返回import itchatitchat.auto_login(hotReload=True)mpsList=itchat.get_mps(update=True)[1:]total=0for it in mpsList: print(it['NickName']+':'+it['Signature']) total=total+1print('公眾號的數目是%d'%total)公眾號的搜索方法為search_mps,有兩種搜索方法: 1. 獲取特定UserName的公眾號 2. 獲取名字中含有特定字符的公眾號如果兩項都做了特定,將會僅返回特定UserName的公眾號,下面是示例程序:# 獲取特定UserName的公眾號,返回值為一個字典itchat.search_mps(userName='@abcdefg1234567')# 獲取名字中含有特定字符的公眾號,返回值為一個字典的列表itchat.search_mps(name='gzh')# 以下方法相當于僅特定了UserNameitchat.search_mps(userName='@abcdefg1234567', name='gzh')群聊:
群聊的獲取方法為get_chatrooms,將會返回完整的群聊列表。其中每個群聊為一個字典傳入update鍵為True將可以更新群聊列表并返回通訊錄中保存的群聊列表 群聊列表為后臺自動更新,如果中途意外退出存在極小的概率產生本地群聊消息與后臺不同步 為了保證群聊信息在熱啟動中可以被正確的加載,即使不需要持續在線的程序也需要運行itchat.run() 如果不想要運行上述命令,請在退出程序前調用-itchat.dump_login_status(),更新熱拔插需要的信息import itchatitchat.auto_login(hotReload=True)#itchat.run()mpsList=itchat.get_chatrooms(update=True)[1:]total=0for it in mpsList: print(it['NickName']) total=total+1print('群聊的數目是%d'%total)#顯示所有的群聊,包括未保存在通訊錄中的,如果去掉則只是顯示在通訊錄中保存的itchat.dump_login_status()群聊的搜索方法為search_chatrooms,有兩種搜索方法: 1. 獲取特定UserName的群聊 2. 獲取名字中含有特定字符的群聊如果兩項都做了特定,將會僅返回特定UserName的群聊,下面是示例程序:# 獲取特定UserName的群聊,返回值為一個字典itchat.search_chatrooms(userName='@abcdefg1234567')# 獲取名字中含有特定字符的群聊,返回值為一個字典的列表itchat.search_chatrooms(name='LittleCoder')# 以下方法相當于僅特定了UserNameitchat.search_chatrooms(userName='@abcdefg1234567', name='LittleCoder')群聊用戶列表的獲取方法為update_chatroom。 群聊在首次獲取中不會獲取群聊的用戶列表,所以需要調用該命令才能獲取群聊的成員 該方法需要傳入群聊的UserName,返回特定群聊的用戶列表memberList = itchat.update_chatroom('bcdefg67')創建群聊、增加、刪除群聊用戶的方法如下所示: 由于之前通過群聊檢測是否被好友拉黑的程序,目前這三個方法都被嚴格限制了使用頻率 刪除群聊需要本賬號為群管理員,否則會失敗 將用戶加入群聊有直接加入與發送邀請,通過useInvitation設置 超過40人的群聊無法使用直接加入的加入方式,特別注意memberList = itchat.get_friends()[1:]# 創建群聊,topic鍵值為群聊名chatroomUserName = itchat.create_chatroom(memberList, 'test chatroom')# 刪除群聊內的用戶itchat.delete_member_from_chatroom(chatroomUserName, memberList[0])# 增加用戶進入群聊itchat.add_member_into_chatroom(chatroomUserName, memberList[0], useInvitation=False)            
新聞熱點
疑難解答