在論壇上看到了用Python登錄微信并實現自動簽到,才了解到一個新的Python庫: itchat
庫文檔說明鏈接在這: itchat
我存個檔在我網站(主要是我打開很慢),以便以后閱讀。
0x01 Start
最簡單的回復
通過如下代碼,可以完成回復所有文本信息(包括群聊)。
import itchatfrom itchat.content import TEXT@itchat.msg_registerdef simple_reply(msg): if msg['Type'] == TEXT: return 'I received: %s' % msg['Content']itchat.auto_login()itchat.run()
常用消息的配置
itchat支持所有的消息類型與群聊,下面的示例中演示了對于這些消息類型簡單的配置。
#coding=utf8import itchatfrom itchat.content import *@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])def text_reply(msg):  itchat.send('%s: %s' % (msg['Type'], msg['Text']), msg['FromUserName'])# 以下四類的消息的Text鍵下存放了用于下載消息內容的方法,傳入文件地址即可@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])def download_files(msg):  msg['Text'](msg['FileName'])  return '@%s@%s' % ({'Picture': 'img', 'Video': 'vid'}.get(msg['Type'], 'fil'), msg['FileName'])# 收到好友邀請自動添加好友@itchat.msg_register(FRIENDS)def add_friend(msg):  itchat.add_friend(**msg['Text']) # 該操作會自動將新好友的消息錄入,不需要重載通訊錄  itchat.send_msg('Nice to meet you!', msg['RecommendInfo']['UserName'])# 在注冊時增加isGroupChat=True將判定為群聊回復@itchat.msg_register(TEXT, isGroupChat = True)def groupchat_reply(msg):  if msg['isAt']:    itchat.send(u'@%s/u2005I received: %s' % (msg['ActualNickName'], msg['Content']), msg['FromUserName'])itchat.auto_login(True)itchat.run()當然這里不需要深究為什么這些東西可以這么寫,我在這里放出了示例程序只是為了給你一個該sdk相關代碼大概樣子的概念。
有了大概的模式的了解之后我們就可以進入下一部分的介紹。
0x02 Login
在上一部分中你看到了基本的注冊與登陸,而顯然登陸使用的是itchat提供了auto_login方法,調用即可完成登錄。
一般而言,我們都會在完成消息的注冊后登陸。
當然這里需要特別強調的是三點,分別是短時間關閉重連、命令行二維碼與自定義登陸內容。 itchat提供了登陸狀態暫存,關閉程序后一定時間內不需要掃碼即可登錄。 為了方便在無圖形界面使用itchat,程序內置了命令行二維碼的顯示。 * 如果你需要就登錄狀態就一些修改(例如更改提示語、二維碼出現后郵件發送等)。
**0x01-1 短時間關閉程序后重連**
這樣即使程序關閉,一定時間內重新開啟也可以不用重新掃碼。
最簡單的用法就是給 auto_login 方法傳入值為真的 hotReload 。
該方法會生成一個靜態文件 itchat.pkl ,用于存儲登陸的狀態。
新聞熱點
疑難解答