天天看点

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