itchat初步解读登录(转)

原文: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()
View Code

 



  
代码执行结果如下:

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

posted @ 2019-05-21 16:29  沉默天蝎的学习汇集  阅读(2658)  评论(0编辑  收藏  举报