基於itchat庫對微信好友資訊的提取以及群發訊息
阿新 • • 發佈:2018-12-13
講解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多條會自動停。