用 python 群发新年祝福

快过年啦,又到了团圆的日子,在这个普天同庆的日子里面,相信很多人和我一样会碰到一年问题 – 拜年(手动捂脸)。

大过年的,大家都会发个微信拜年联络联络感情,炸一炸万年不见的老朋友。但是问题就来了,如果是用微信的群发助手群发的话,感觉有点审美疲劳或者说感觉有点没诚意(总之感觉不舒服就对了),但是如果说你要有诚意,一个一个人写名字,一个一个发的话,我觉得你手指会残的。之前我干过两次,其中我中途休息两回,发完之后手指基本快废了。

后来发觉我是一个 IT 男,应该想个办法解决这种重复性的操作,拯救我那双一年被摧残一次的双手,于是乎,经过一番学习,用现在比较火的 Python 解决了我这个问题。下面就和大家聊聊怎么操作吧。

1 所需资料

  1. python 安装程序
  2. 有相关代码的 python 文件

这些材料我都放在下面的云盘中了

链接:https://pan.baidu.com/s/1zt11zzmJUCA8pTijg1mv1w

提取码:m6oh

2 配置 Python

既然用 Python,肯定要装一下 Python 的环境啦。

到 Python 的官网,下载 3.5 版本的 Python 或者到我百度云那个搞咯。

下载完后就直接打开安装

请选中 把 Python 添加到环境变量,这样以后在windows命令提示符下面也可以运行Python

image

下面这些除了修改一下安装路径外,其他默认就好(下图的情况我忘记截图了,从网上找了张图片)

image

3 敲代码

如果想直接用的小伙伴这一步就不用看了,直接拿网盘的 wish.py 文件,按照下面的第 4 步去运行。

后面的操作,喜欢玩 Python 或者学过的同学可以用 Pycharm 或者其他 IDE 去运行。我这边的话就直接用最原始的方法咯。

首先新建一个 txt 文件,修改它的后缀名为 .py 变成一个 Python 文件咯,用记事本或者 NotePad++ 直接打开,复制下面的代码进去,我在代码里面写了一点注释,要看哦

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#coding=utf8
import itchat, time, random

# SINCERE_WISH = u'祝%s新年快乐!'
# REAL_SINCERE_WISH = u'祝%s新年快乐!!'

# 祝福语数组 %s 后面替换为好友昵称或者好友备注
wishList = [
u'祝%s新年快乐!',
u'%s,祝你新年快乐!',
u'%s,新年快乐!',
]

# 群发所有好友
def send_wishes():
friendList = itchat.get_friends(update=True)[1:]
for friend in friendList:
# 如果不是演示目的,把下面的print方法改为itchat.send即可
print(random.choice(wishList) % (friend['RemarkName']), friend['UserName'])
time.sleep(.5)

# 群发指定群(该群要保存到通讯录)的好友
def send_special_wishes(chatroomName='微信群名'):
itchat.get_chatrooms(update=True)
chatrooms = itchat.search_chatrooms(name=chatroomName)
if chatrooms is None:
print(u'没有找到群聊:' + chatroomName)
else:
chatroom = itchat.update_chatroom(chatrooms[0]['UserName'])
for friend in chatroom['MemberList']:
friend = itchat.search_friends(userName=friend['UserName'])
# 如果不是演示目的,把下面的print方法改为itchat.send即可
# RemarkName 你对好友的备注 NickName 好友自己的昵称
print(random.choice(wishList) % (friend['RemarkName']), friend['UserName'])
time.sleep(.5)

itchat.auto_login(True)

# 要一次性群发给所有好友,把下面的注释去掉(删除 # 号)
# send_wishes()

# 要群发给指定群(已保存到通讯录的群)的好友,把下面的注释去掉(删除 # 号)
send_special_wishes()

4 运行

按住 shift 键右键,选择「在此处打开 powershell(或者 cmd)」,输入下面命令安装 itchat

1
pip install itchat

等待它安装后,输入下面的指令运行代码(假设我那个 python 文件是 wish.py)

1
python wish.py

运行之后会弹出一个二维码,那个是用于登录网页版微信的,扫码确认登录

登录之后,代码就会自动跑起来了,为了防止翻车,或者忘记给好友的迷之备注,我在发之前先在本地测试一下,用 print 方法打印出要发送的信息,看看好会不会出啥问题。

先在我这边的话是选择了发送给「微信群名」这个群的好友,控制台这边就打印出来,如下:

image

控制台的输出

image

第一个那个没有备注的是本人的微信,别怕,其次后面的那串字符是用户的id,到时候真正群发的时候当参数使用,不会发给好友,别怕。测试没有问题之后,我们就可以按照注释的说明,将代码中的 print 改成 itchat.send 方法,重新运行代码,然后真正的群发给好友了,如下

image

写在后面

  1. 本次我用的是 itchat 这个开源的 Python 微信库,里面还有很多玩法,挺好玩的,大家可以去它 官网 看看,有 github 的朋友也可以去到 github 上给它个 star 呗,饮水思源嘛。
  2. 告诉大家一个残忍的事实吧,其实这个也是有点麻烦的。如果是带好友自己的昵称的话,虽然方便,但是感觉也没有那么亲切啊。要是带自己给好友的备注的话,鬼知道你会给你那些损友起啥备注咧,让好友知道你对他的备注感觉会有翻车的危险啊。
  3. 给好友拜年还是要真诚啊,这样虽然也算用心了,但是也是用了点小技巧啊。如果是要给某些很重要的人(手动滑稽,别想歪哦 ~(@^_^@)~ )发过年祝福的话,还是要自己手打一句,再发个红包啦。只希望以后有个群发红包的功能,这个不用说啦,红包都发了,谁还敢说不真诚!

最后的最后,过年嘛,也不要老是手机联络感情啦。直接拉出来三五好友聚聚餐,吹吹水,这才好玩嘛!



----------- 本文结束 -----------




小红帽 wechat
想看更多文章,那就订阅我的微信公众号吧
如果觉得我的文章对你有很大帮助的话,请我喝杯奶茶吧~(@^_^@)~