ITPub博客

首页 > 人工智能 > 人工智能 > Python|如何自动定时在微信中发送消息?

Python|如何自动定时在微信中发送消息?

原创 人工智能 作者:销香叶雨 时间:2020-02-20 16:43:56 0 删除 编辑

原文发最开始发在微信公众号了。

地址:

https://mp.weixin.qq.com/s?__biz=MjM5MDE2MDQ0Ng==&mid=2649706793&idx=1&sn=953bb9799c56736bcafb98a189499e29&chksm=be52f27889257b6e2155916467cb4ed1cc5eb8c333f5f32bcd2fa843a31286f229744ed0478a&token=1440813778&lang=zh_CN#rd

       新型冠状病毒感染肺炎疫情期间,很多人只能在家里工作、学习,微信作为主要的社交工具,在工作、学习中发挥了越来越重要的作用。微信通讯录中的朋友、同事、领导、同学…越来越多,随之而来的,各种工作任务、学习计划、消息反馈、健康状况…需要在微信中发送消息,尤其是一些重复的消息,需要频繁的发送,工作、学习可能不断被微信中的各类消息打断,自己的时间被不断碎片化,即影响工作学习的效率,也影响心情。


     那么,对于 一些重复的,需要频繁发送的消息,有没有办法实现自动发送呢?

    下面我就用Python编程语言,做一个简单的Demo演示如何自动发送消息。

    先对问题做简单的分析:

  • 在微信中需要发送消息的情形,大致分成两类:群聊天和个人对话;

  • 消息发送的周期,一般有按天发送;按周一至周五发送;按固定时间点发送;极端一点的,按照固定时间间隔发送(比如每2小时、每30分钟、每20秒…)

  • 发送的内容,一般是固定内容,比如:”x月x日,xxx,监测体温xx℃“、”今天课程要开始啦,请同学们提前准备来听课“;还有是针对特定问题的固定答复等。

可能需要用到的库(第三方库需要事先导入),

  • schedule,是python中有一个轻量级的定时任务调度的库,可以完成每分钟,每小时,每天,周几,特定日期的定时任务;

  • time, 格式化日期和时间 ;

  • datetime, 是date和time模块的合集 ;

  • itchat,是 开源的微信个人号接口 。

    下面是一个简单的示例。

    import schedule 
    import time
    import itchat
    myTpye =0 #0,个人用户;1,群用户
    myName='李小' #微信用户名
    mytime='13:27' #需要固定发信息的时间
    endDay='2020-3-31' #截止日期,即从当前到2020年3月31日,每天13:27发送消息
    ss = '今天居家隔离,身体状况良好,体温36.8℃~' #需要发送的文本
    now = time.strftime("%d/%m/%Y") #获取日期
    itchat.auto_login() #登录微信
    def job(): #任务
      if myTpye ==0: #个人
        user2 = itchat.search_friends(name=myName) #个人
        itchat.send(ss,user2[0]['UserName'] ) #发消息
      elif myTpye ==1: #群
        myroom = itchat.search_chatrooms(name=myName) #群
        itchat.send_msg(ss, myroom[0]['UserName'])  # 群用户
        #列举几种发送的周期,可以根据具体情况选择
    schedule.every(10).minutes.do(job) #每隔十分钟发送
    schedule.every().day.at(mytime).do(job) #每天的指定时间发送
    schedule.every().monday.do(job) #每周一的这个时候发送
    schedule.every().wednesday.at(mytime).do(job) #每周三指定时间发送
    while now < endDay:#判断有没有到截止日期
      schedule.run_pending() #运行所有任务
      time.sleep(3) #运行间隔
      now = time.strftime("%d/%m/%Y")
    itchat.logout() #登出微信

            以上只是一个简单的例子,说明一下实现的基本逻辑,当然实际情况可能更复杂一些(比如根据关键词回复、调用第三方机器人回复等),需要灵活处理了。

            疫情期间,异地复工需要集中隔离观察,需要天天汇报体温、健康状况…

            祝大家身体健康!


    来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31355641/viewspace-2676428/ ,如需转载,请注明出处,否则将追究法律责任。

    下一篇: 没有了~
    请登录后发表评论 登录
    全部评论

    注册时间:2016-06-03

    • 博文量
      3
    • 访问量
      5596