1. 程式人生 > >Pythpn整合itchat定時傳送自定義訊息到微信群

Pythpn整合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.掃碼登陸即可,如下圖
這裡寫圖片描述

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()