Python3 itchat微信獲取好友、公眾號、群聊的基礎信息


Python3 itchat微信獲取好友、公眾號、群聊的基礎信息

一、簡介

安裝 itchat 

pip install itchat 

使用個人微信的過程當中主要有三種賬號需要獲取,分別為:

  • 好友
  • 公眾號
  • 群聊

itchat為這三種賬號都提供了整體獲取方法與搜索方法。 
而群聊多出獲取用戶列表方法以及創建群聊、增加、刪除用戶的方法。 
這里我們分這三種分別介紹如何使用。

二、好友

好友的獲取方法為get_friends,將會返回完整的好友列表。

  • 其中每個好友為一個字典
  • 列表的第一項為本人的賬號信息
  • 傳入update鍵為True將可以更新好友列表並返回
#登錄(只需要掃碼一次,第二次運行手機微信會彈出確認框)
itchat.auto_login(hotReload=True)
#登錄(每次登錄都要掃二維碼)
#itchat.login()
#爬取自己好友相關信息, 返回一個json文件
friends = itchat.get_friends(update=True)[0:]
#print(friends)

好友的搜索方法為search_friends,有四種搜索方式:

1. 僅獲取自己的用戶信息。

2. 獲取特定UserName的用戶信息。

3. 獲取備注、微信號、昵稱中的任何一項等於name鍵值的用戶。

4. 獲取備注、微信號、昵稱分別等於相應鍵值的用戶 。
其中三、四項可以一同使用,下面是示例程序:

# 獲取自己的用戶信息,返回自己的屬性字典
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  itchat
#登錄(只需要掃碼一次,第二次運行手機微信會彈出確認框)
itchat.auto_login(hotReload=True)
#登錄(每次登錄都要掃二維碼)
#itchat.login()

mpsList=itchat.get_mps(update=True)[1:]

total=0
for it in mpsList:
    print(it['NickName']+':'+it['Signature'])
    total=total+1

print('公眾號的數目是%d'%total)

公眾號的搜索方法為search_mps,有兩種搜索方法:

1. 獲取特定UserName的公眾號。

2. 獲取名字中含有特定字符的公眾號 。
如果兩項都做了特定,將會僅返回特定UserName的公眾號,下面是示例程序:

# 獲取特定UserName的公眾號,返回值為一個字典
itchat.search_mps(userName='@abcdefg1234567')
# 獲取名字中含有特定字符的公眾號,返回值為一個字典的列表
itchat.search_mps(name='gzh')
# 以下方法相當於僅特定了UserName
itchat.search_mps(userName='@abcdefg1234567', name='gzh')

四、群聊

群聊的獲取方法為get_chatrooms,將會返回完整的群聊列表。 

其中每個群聊為一個字典

  • 傳入update鍵為True將可以更新群聊列表並返回通訊錄中保存的群聊列表
  • 群聊列表為后台自動更新,如果中途意外退出存在極小的概率產生本地群聊消息與后台不同步
  • 為了保證群聊信息在熱啟動中可以被正確的加載,即使不需要持續在線的程序也需要運行itchat.run()
  • 如果不想要運行上述命令,請在退出程序前調用-itchat.dump_login_status(),更新熱拔插需要的信息
import  itchat

#登錄(只需要掃碼一次,第二次運行手機微信會彈出確認框)
itchat.auto_login(hotReload=True)
#登錄(每次登錄都要掃二維碼)
#itchat.login()

#itchat.run()
mpsList=itchat.get_chatrooms(update=True)[1:]
total=0
for it in mpsList:
    print(it['NickName'])
    total=total+1
print('群聊的數目是%d'%total)
#顯示所有的群聊,包括未保存在通訊錄中的,如果去掉則只是顯示在通訊錄中保存的
itchat.dump_login_status()

#獲取群成員信息,UserName的值是動態的(每登錄一次生成新的UserName)
memberList = itchat.update_chatroom('@@d79840106086e26e76f86857c440f403c8bbeedff17bf4851c7bf4901a3bfdeb')
#print(memberList['MemberList'])
#獲取群成員昵稱和群昵稱
mlist = memberList['MemberList']
for it in mlist: 
    print(it['NickName']+':'+it['DisplayName'])

群聊的搜索方法為search_chatrooms,有兩種搜索方法:

1. 獲取特定UserName的群聊。

2. 獲取名字中含有特定字符的群聊 。
如果兩項都做了特定,將會僅返回特定UserName的群聊,下面是示例程序:

# 獲取特定UserName的群聊,返回值為一個字典
itchat.search_chatrooms(userName='@abcdefg1234567')
# 獲取名字中含有特定字符的群聊,返回值為一個字典的列表
itchat.search_chatrooms(name='LittleCoder')
# 以下方法相當於僅特定了UserName
itchat.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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM