查看原文
其他

教你用python群发微信新年祝福

叉烧 CS的陋室 2022-08-08

逢年过节发新年祝福成为新时代的新习俗,近年来微信的出现令人们从传统的电话祝福、短信祝福升级为微信祝福,文字,图片,视频应有尽有,但是随着网络时代的兴起,朋友圈逐渐扩大,没法对所有人都一一发送,所以群发成为了必备方法,然而群发又显得没有诚意,那么,怎么批量地、有诚意地发送新年祝福呢,这里给出一个有用的方案,自己写代码呀!python有专门调用微信接口的包,利用这个就能有比较好的功能。我自己的代码,点击阅读原文即可找到。

本文参考了下面三个东西:

  • 知乎|用python和itchat实现狗年微信群发拜年: https://zhuanlan.zhihu.com/p/33822531?utm_source=wechat_session&utm_medium=social

  • github|Windsmild/WechatHappyNewYear: https://github.com/Windsmild/WechatHappyNewYear

  • itchat的官网文档: http://itchat.readthedocs.io/zh/latest/

事先说一句话,慎发,群发规模太大,有被删好友的危险。

老规矩导入必要的包,没有的话用conda或者pip安装一下。

  1. import random

  2. import itchat

  3. import time

定义两个函数,其中randomBless是一个随机函数,可以返回不同的祝福词,从而能给不同的人发送不同的信息。

  1. @itchat.msg_register(itchat.content.TEXT)

  2. def print_content(msg):

  3.    print(msg['Text'])

  4. def randomBless():

  5.    blessings = ["狗年第一天,一心一意送你祝福:祝你事业发达第一,平安健康第一,婚姻美满第一,家庭和谐第一,赚钱发财第一,开心快乐第一,轻松悠闲都是第一。",

  6.                 "健康是最佳的礼物,知足是最大的财富,信心是最好的品德,关心是最真的问候,牵挂是最深的思念,祝福是最美的话语。祝新年快乐!平安幸福!",

  7.                 "愿你狗年万事顺,得意洋洋满面春!欢快的歌声尽情飘,温暖的春风暖心潮。万千的喜气多热闹,吉祥的日子要来到。发条短信问个好,财源广进吉星照。万事顺利开怀笑,狗年幸福乐逍遥。",

  8.                 "除夕夜,千里迢迢把家赶;心思念,酸甜苦辣在心间;年夜饭,平安吉祥共团圆;喜开颜,快乐吉祥永相伴。祝狗年除夕快乐,团团圆圆幸福满!",

  9.                 "拜年礼包新配方,包含:十分关心十分甜蜜十分健康十分好运十分快乐十分吉祥十分幸福十分如意十分美满。愿你除夕快乐,狗年幸福满溢!",

  10.                 "祝君新年好!新年新面貌!新年新心情!新年新开始!新年新运气!新朋旧友齐愿你,万事总如意,钱途千万里!",

  11.                 "狗年到,短信早,祝福绕,人欢笑,生活好,步步高,重环保,健康牢,多关照,新目标,加力跑,乐淘淘。新春祝你事事好,生活妙,工资高!",

  12.                 "新年祝你事业如日中天,恋人亲密无间,薪水上万成千,快乐无际无边,烦恼渺如云烟,逍遥胜似神仙!我买了二斤时尚,购了三斤浪漫,自制八斤快乐,从心底切下一吨关怀,做个狗年大礼送给你!",

  13.                 "新年我把好运送到,祝您抱着平安,拥着健康,揣着幸福,搂着温馨,携着快乐,牵着财运,拽着吉祥,迈入狗年,快乐度过每一天! "]

  14.    return random.sample(blessings, 1)[0]

在开始之前,先尝试一下itchat的包功能怎么样,函数的具体功能,可以参考官方文档。

  1. itchat.auto_login(hotReload=True) # 登录

  2. users = itchat.search_friends(name='文笔超好的男同学')

  3. print(users[0])

  4. okWord = u'祝我的好友'+users[0]['NickName']+':\n'+ randomBless() + "\nMade by WindAI[红包][红包]🎉🎉"

  5. # 注意,下次下面这句话一执行可就发出去了

  6. itchat.send(okWord,users[0]['UserName'])

结果应该是能发的,那么现在就可以给大家群发信息了。

  1. # 获取自己的好友

  2. friendList = itchat.get_friends(update=True)[1:]

  3. num=0 # 好友人数

  4. for friend in friendList:

  5.    num = num+1

  6.    print('正在给第'+str(num)+'个好友发送信息: '+friend['NickName'])

  7.    result = False

  8.    okWord = u'祝我的好友'+friend['NickName']+':\n'+ randomBless() + "\nMade by WindAI[红包][红包]🎉🎉"

  9.    result = itchat.send(okWord, friend['UserName'])

  10.    time.sleep(10) # 执行太频繁会导致微信拒绝操作,所以需要等一些时间再进行下一波操作。

  11.    if(result):

  12.        print('发送成功')

  13.    else:

  14.        print('发送失败')

  15. print('completed')

不仅能给个人,还能给群发送祝福。

  1. itchat.auto_login(hotReload=True)

  2. groupList = itchat.get_chatrooms(update=True)

  3. num=0

  4. for group in groupList:

  5.    num=num+1

  6.    print('正在给第'+str(num)+'个群发送信息: '+group['NickName'])

  7.    result=False

  8.    okWord = u'祝群'+group['NickName']+'里面的各位:\n'+ randomBless() + "\nMade by WindAI[红包][红包]🎉🎉"

  9.    result = itchat.send(okWord, group['UserName'])

  10.    time.sleep(10)

  11.    if(result):

  12.        print('发送成功')

  13.    else:

  14.        print('发送失败')

  15. print('completed')

里面的的大部分print都是用于进行结果反馈的,你可以了解代码现在的运行情况,运行到哪了,还剩多少,是否在正常进行等,进行监控。

是不是比较想知道我玩炸的经历

我比较怂,也比较天真,认为发给人可能会不太好,所以用了群发给群,于是有了下面的效果:

有些朋友和我关系还不错,然后也有很多一起合作工作的机会,于是有很多共同群,于是...大家就知道怎么回事了。回头想起来,还不如群发人呢。下面是几条教训:

  • 群发的意义嘛,不是没有,感觉也没有很多人想的那么坏,毕竟,在他们的群发名单里面,这么想就好多了,即使是群发,他们也把自己放在心里了。但应该还是有些人是指的单独发的吧?你们懂的。

  • 跑代码之前,尽可能考虑所有的边缘情况,代码不会帮你考虑,少考虑一点就会出很多问题。

  • 皮一下可以,但是要注意尺度Orz,友谊是保住了,但是我的钱包没保住,具体尺度怎么把握,参考上一条。

itchat是一个比较特别的包,能调用很多微信的接口,所以能做很多事情,群发只是其中一种,类似自动回复、红包监控之类的也是能做的,可以动手试试。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存