天天看點

Python整合itchat定時發送自定義消息到微信群

完整代碼如下:

import itchat
import time
from apscheduler.schedulers.blocking import BlockingScheduler
# 登陸,enableCmdQR 值為true 或 負數 為負數的原因有的手機無法識别二維碼,改為負數就好了
# 讀取檔案
def send():
    f = open(r'C:\CRM\doc\01綜合管理\01資源相關\05日常運維監控\dingding\dingding.json')
    contents = f.read()
    contents=contents[42:-3]
    f.close()
    chatroomName = u'批處理監控'
    itchat.get_chatrooms(update=True)
    chatrooms = itchat.search_chatrooms(name=chatroomName)
    print(chatrooms)
    if len(chatrooms) <=0:
        print(u'沒有找到群聊:' + chatroomName)
    else:
        chatroom = chatrooms[0]["UserName"]
        print(chatroom)
        itchat.send(contents, toUserName=chatroom)


itchat.auto_login(enableCmdQR='-1',hotReload=True)
sched = BlockingScheduler()
sched.add_job(send, 'cron', hour=6,minute=40,second=10)
sched.start()

           

環境:python3.7

下載下傳對應子產品,安裝時可能會提示更新,輸入對應指令更新即可

<1> pip install itchat

<2>pip install apscheduler

登陸微信:

itchat.auto_login(enableCmdQR=’-1’,hotReload=True)

上為登陸微信方法,run代碼,控制台輸出登陸二維碼,并提示Please scan the QR code to log in.掃碼登陸即可,如下圖

Python整合itchat定時發送自定義消息到微信群

enableCmdQR預設為true,但是輸出的二維碼有的手機無法登陸,是以改為-1,遇到無法登陸的情況,可以嘗試切換該值;

hotReload預設為True,為True時,下次登陸就不用掃碼了

手機登入微信

建立群聊,修改群名,群名自定義即可,群聊要儲存到通訊錄,否則會找不到群聊。

chatrooms = itchat.search_chatrooms(name=自定義群名)

chatrooms 為從你群清單裡查到的群名為自定義群名的list,是以為了友善,群名最好不一樣

chatroom = chatrooms[0][“UserName”]

chatroom 為你建立那個群聊對象

itchat.send(contents, toUserName=chatroom)

發送消息,contents為自定義内容

定時

這時候就要用到apscheduler子產品了,導入apscheduler

from apscheduler.schedulers.blocking import BlockingScheduler

建立定時器

sched = BlockingScheduler()

添加任務

sched.add_job(send, ‘cron’, hour=6,minute=40,second=10)

send為要執行的方法名

cron定時任務類型

後面的時間意為每天6點40分10秒執行,可根據需要自行修改

執行

sched.start()