原文:https://blog.csdn.net/coder_pig/article/details/81357810
itchat的登錄采取的是通過itchat.auto_login()這個函數來完成的,不帶參數的話會生成一個二維碼圖片文件供你掃描登陸。一般的話我們的電腦都會關機,如果機器人有需要持久在線的需求,我們可以把腳本掛到服務器上,24小時跑,但是一般的雲服務器是沒有界面的,都是通過終端命令行進行操作,這個時候可以添加enableCmdQR=True參數,讓二維碼顯示到命令行上,另外部分系統可能字符寬度有出入,如圖19.2所示,可以通過把enableCmdQR賦值為特定的倍數進行調整。
Q: 為什么我在設定了itchat.auto_login()的enableCmdQR為True后還是沒有辦法在命令行顯示二維碼?
A: 這是由於沒有安裝可選的包 pillow ,可以使用右邊的命令安裝: pip install pillow
圖19.2 命令行二維碼錯位
比如enableCmdQR=2后,二維碼圖片如圖19.3所示
圖19.3 調整后正常的二維碼圖片
掃碼登錄后,如果想退出程序以后還暫存登錄狀態,重新執行程序也不用掃碼可以添加參數hotReload=True。
如果在啟動時沒有設置hotReload=True參數,程序退出后過一會兒就會自動掉線的了,如果想快速退出的話可以調用itchat.logout()注銷登錄狀態。另外,有時我們可能想在登錄成功或者注銷登錄后執行一些操作,可以添加兩個調用登錄時傳入兩個方法參數loginCallback和exitCallback,簡單示例如下:

1 import itchat 2 import time 3 4 5 def after_login(): 6 print("登錄后調用") 7 8 9 def after_logout(): 10 print("退出后調用") 11 12 13 if __name__ == '__main__': 14 itchat.auto_login(loginCallback=after_login, exitCallback=after_logout) 15 time.sleep(5) 16 itchat.logout()
代碼執行結果如下:
Getting uuid of QR code.
Downloading QR code.
Please scan the QR code to log in.
Please press confirm on your phone.
Loading the contact, this may take a little while.
登錄后調用
退出后調用
---------------------
參考文章 :
原文:https://blog.csdn.net/coder_pig/article/details/81357810