1. 程式人生 > >基於itchat庫對微信好友資訊的提取以及群發訊息

基於itchat庫對微信好友資訊的提取以及群發訊息

講解itchat庫對微信的處理

將對於itchat中一些方法進行講解

首先我們引入這個庫

import itchat

itchat庫的下載可以百度檢視教程 首先用這個庫實現登陸,執行後會出現二維碼,掃碼即可,程式碼

itchat.auto_login(hotReload=True)

括號裡的引數表示這次登陸儲存一段時間,即在一定時間內執行該程式都不用重新掃二維碼登陸。 首先,最重要的一個方法,即獲取微信好友所有資訊

myfriends = itchat.get_friends()

如果此時print的一下,你就會發現這是json檔案,裡面有你列表所有好友的身份資訊,包括備註、微信名稱、個性簽名、性別等,當然別人沒寫的資訊就是空。 直接迴圈即可得出好友列表每個人的資訊

    for myfriends in myfriends:
        if myfriends['RemarkName']:     #判斷是否有備註。之後['RemarkName']和["UserName"]都是屬性值
            print(myfriends['RemarkName'])
            print(myfriends["UserName"])

執行就可以得到我們要的備註和[“UserName”],在資訊中,[“UserName”]是一串數字加字母,我們可以通過這個來給好友發信息,之後講解。 有時候我們可能需要特定好友的資訊,那麼久需要用

my_friend = itchat.search_friends(name='name')#name是好友名稱

這樣就可以獲取特定好友的資訊,是列表資訊,如果要處理,我們可以在my_friend後加[0]即可。 然後是發訊息

itchat.send(message,toUserName=myfriends["UserName"])

這就是itchat發訊息的方法,message就是你要發的資訊,toUserName後面賦值你好友的[“UserName”]即可。 最後給出群發信息的程式碼:

import itchat
import time

def send_news():
        # 登陸你的微信賬號,會彈出網頁二維碼,掃描即可
    itchat.auto_login(hotReload=True)
    myfriends = itchat.get_friends()
    count = 0
    message = '打擾了,最後一條群發測試資訊,勿回。'
    for myfriends in myfriends:
        #print(myfriends)
        if myfriends['RemarkName']:
            print(myfriends['RemarkName'])
            print(myfriends["UserName"])
            itchat.send(message,toUserName=myfriends["UserName"])
            time.sleep(0.5)
            count += 1
            print('傳送成功')
    print(count)
def main():
    send_news()

if __name__ == '__main__':
    main()

其中設定每一條資訊傳送間隔為0.5s,因為好像不加時間傳送40多條會自動停。