Python发送新春祝福给指定好友

为了解放我们的双手,不再一个一个去发送祝福内容,这次,我们决定使用 Python 来发送新春祝福给指定好友。

这里,我们主要是用 itchat 来发送消息。 首先,安装 itchat,如下:

  1. pip install itchat

如果是想给所有的微信好友发送祝福语,相对来说代码要简单一些。

但有时候,我们不想给所有好友都发信息,只想给一部分好友发送信息。 尤其是有些领导或老板或其他特殊人员,发送消息可能效果适得其反。

所以,本次的代码设计思路分为两个部分。

  1. 获取你的所有微信好友
  2. 针对你想发送信息的好友发送祝福语

步骤一:获取所有微信好友

对于我的微信好友,我有一个习惯,会将好友的备注填上,这样的话,即使好友修改昵称,在我的手机上显示的名称也不会发生改变,有利于自己对好友进行识别。

所以,这里我是获取所有微信好友的备注名称,即 RemarkName(当然,如果你的好友大部分是没有进行备注的,你可以试试 DisplayName 或者 NickName

获取所有好友的代码如下,运行代码后,会跳出二维码,用你的微信扫描登录即可:

  1. #coding=utf8
  2. import itchat, time
  3. import pandas as pd
  4. itchat.auto_login(True)
  5. friendList = itchat.get_friends(update=True)[1:]
  6. # --------------------------start------------------------------
  7. # step 1: 获取所有的微信好友列表,在获取完毕后,需要注释掉这段代码
  8. # 从获得的好友列表里筛选你想发送消息的好友,同时可以将好友按照不同的分组进行设置
  9. # 获取所有微信好友列表,这里我获取的是好友的备注名称
  10. count_02 = 0
  11. friends_remark = []
  12. for friend in friendList:
  13.    friends_remark.append(friend[‘RemarkName‘])
  14.    count_02 = count_02 + 1
  15. # df_friends = pd.Series(friends_remark)
  16. # df_friends.to_csv(‘friends.csv‘, encoding=‘utf_8_sig‘) # utf-8
  17. print(friends_remark)
  18. print("Total {} friends".format(count_02))
  19. # -------------------------end---------------------------------

在上面的代码中, print(friends_remark) 会输出你的所有好友,你可以从里面挑选你想发送消息的好友,同时可以分为几个不同的组。 后续可以考虑针对不同分组的好友发送不同的祝福内容。

步骤二: 将好友分组,并发送消息

在获取了所有好友之后,首先请先把上面的 step 1 的代码进行注释,然后需要从你的所有好友里挑选想发送消息的好友的名称,可以分别填入到下面代码中的 friend_msg_list_01 或 friend_msg_list_02 。

其次,需要设置发送的祝福语的内容。

把以上内容设置好之后,则可以参考下面的代码进行设置,以及运行代码。

以下的代码,默认将好友分为两组,当然,你也可以设置更多的分组,在后面添加 elif 条件语句进行发送设置即可。

  1. # --------------------------start------------------------------
  2. # step 2: 给指定好友按不同分组发送不同的消息
  3. # 在运行 step 1 的代码时,这里的代码需要注释
  4. # 定义要发送的好友的范围,防止自动乱发消息
  5. # 好友列表里,我用的是 备注名称
  6. friend_msg_list_01 = ["lemon-zs", "lemon-zs-01"]  # 根据自己的实际情况设置好友分组
  7. friend_msg_list_02 = ["lemon-zs-02", "lemon-zs-02" ] # 根据自己的实际情况设置好友分组
  8. #设置不同好友分组需要发送的内容
  9. SINCERE_WISH = u‘test, 祝%s新年快乐!‘  # 根据自己的实际情况设置祝福内容
  10. msg_01 = ‘test01, 祝新年快乐!!!‘     # 根据自己的实际情况设置祝福内容
  11. msg_02 = ‘test02, 祝新年快乐!!!‘     # 根据自己的实际情况设置祝福内容
  12. count = 0
  13. for friend in friendList:
  14.    # 通过 if 条件设置,可以只针对 指定的好友发送消息
  15.    # 也可以设置为几个分组,不同分组发送不同的消息
  16.    # 由于我的好友一般都设置了备注名称, 即 "RemarkName",所以我是用 备注名称来作为条件判断
  17.    # 主要是为了防止别错发给一些不能随便发送信息的老板或领导或其他人士
  18.    if friend[‘RemarkName‘] in friend_msg_list_01:
  19.        # itchat.send( SINCERE_WISH % (friend[‘DisplayName‘] or friend[‘NickName‘]), friend[‘UserName‘])
  20.        itchat.send( SINCERE_WISH % (friend[‘DisplayName‘] or friend[‘NickName‘]), friend[‘UserName‘])
  21.        time.sleep(5)
  22.        count = count + 1
  23.    elif friend[‘RemarkName‘] in friend_msg_list_02:
  24.        itchat.send( msg_01, friend[‘UserName‘])
  25.        time.sleep(5)
  26.        count = count + 1
  27. print("Total {} messages have been sent.".format(count))
  28. print("----end----")
  29. # -------------------------end---------------------------------

友情提醒下:

itchat 在使用过程中,如果频繁调取与发送消息,可能会导致微信被封,请谨慎使用。当发送消息的人员很多时,请适当设置每发送一个之后的休息时间间隔,即 time.sleep(5)

完整源码如下:
#coding=utf8
import itchat, time
import pandas as pd

itchat.auto_login(True)

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

# --------------------------start------------------------------
# step 1: 获取所有的微信好友列表,在获取完毕后,需要注释掉这段代码
# 从获得的好友列表里筛选你想发送消息的好友,同时可以将好友按照不同的分组进行设置
# 获取所有微信好友列表,这里我获取的是好友的备注名称
count_02 = 0
friends_remark = []
for friend in friendList:
    friends_remark.append(friend[‘RemarkName‘])
    count_02 = count_02 + 1

# df_friends = pd.Series(friends_remark)
# df_friends.to_csv(‘friends.csv‘, encoding=‘utf_8_sig‘) # utf-8
print(friends_remark)
print("Total {} friends".format(count_02))
# -------------------------end---------------------------------

# --------------------------start------------------------------
# step 2: 给指定好友按不同分组发送不同的消息
# 在运行 step 1 的代码时,这里的代码需要注释

# 定义要发送的好友的范围,防止自动乱发消息
# 好友列表里,我用的是 备注名称
friend_msg_list_01 = ["lemon-zs", "lemon-zs-01"]  # 根据自己的实际情况设置好友分组
friend_msg_list_02 = ["lemon-zs-02", "lemon-zs-02" ] # 根据自己的实际情况设置好友分组

#设置不同好友分组需要发送的内容
SINCERE_WISH = u‘test, 祝%s新年快乐!‘  # 根据自己的实际情况设置祝福内容
msg_01 = ‘test01, 祝新年快乐!!!‘     # 根据自己的实际情况设置祝福内容
msg_02 = ‘test02, 祝新年快乐!!!‘     # 根据自己的实际情况设置祝福内容

count = 0
for friend in friendList:
    # 通过 if 条件设置,可以只针对 指定的好友发送消息
    # 也可以设置为几个分组,不同分组发送不同的消息
    # 由于我的好友一般都设置了备注名称, 即 "RemarkName",所以我是用 备注名称来作为条件判断的
    # 主要是为了防止别错发给一些不能随便发送信息的老板或领导或其他人士
    if friend[‘RemarkName‘] in friend_msg_list_01:
        # itchat.send( SINCERE_WISH % (friend[‘DisplayName‘] or friend[‘NickName‘]), friend[‘UserName‘])
        itchat.send( SINCERE_WISH % (friend[‘DisplayName‘] or friend[‘NickName‘]), friend[‘UserName‘])
        time.sleep(5)
        count = count + 1
    elif friend[‘RemarkName‘] in friend_msg_list_02:
        itchat.send( msg_01, friend[‘UserName‘])
        time.sleep(5)
        count = count + 1

print("Total {} messages have been sent.".format(count))
print("----end----")
# -------------------------end---------------------------------

原文地址:https://www.cnblogs.com/jason89/p/10344931.html

时间: 2024-08-02 16:12:32

Python发送新春祝福给指定好友的相关文章

Python|每日定时对指定好友发送随机消息~

代码很简单,直接贴了: import itchat import datetime import time import random def wenhouyu(a): i = random.choice(a) return i itchat.auto_login(hotReload=True) names = input('请输入接收者微信昵称,多个用户用逗号隔开'+'\n').split(',') whlist = input('请输入问候语,多条语句请用分号隔开,每次会随机发送其中一条'+

python 发送post和get请求

摘自:http://blog.163.com/[email protected]/blog/static/132229655201231085444250/ 测试用CGI,名字为test.py,放在apache的cgi-bin目录下:#!/usr/bin/pythonimport cgidef main():     print "Content-type: text/html\n"    form = cgi.FieldStorage()    if form.has_key(&qu

python发送微信

申请企业微信 使用python发送信息到企业微信,同时支持python2与python3环境,需要先申请一个企业微信,然后创建应用,获取以下三个信息 企业IP.Agentid.Secret 网信为创建的应用名称 脚本描述 将以上三个信息替换到脚本中,主要是 class WeiXin(object):部分,其他的辅助性工具类,收集的一些常用脚本可不用关注 #!/usr/bin/env python #coding=utf-8 ''' Created on 2018年2月8日 @author: ro

使用Python发送、订阅消息

使用Python发送.订阅消息 使用插件 paho-mqtt 官方文档:http://shaocheng.li/post/blog/2017-05-23 Paho 是一个开源的 MQTT 客户端项目,提供多种语言的 MQTT 客户端实现,包括 C.C++.C#.Java.Python.JavaScript 等,完全支持 MQTT v3.1 和 v3.1.1 .Paho Python Client 是它的 Python 语言版本,支持 Python 2.7 和 3.x .更多特性可以查看 http

[Python] 发送email的几种方式

python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送都比较容易实现. 先把几个最简单的发送邮件方式记录下,像html邮件,附件等也是支持的,需要时查文档即可 1 登录邮件服务 #!/usr/bin/env python # -*- coding: utf-8 -*- #python2.7x #send_simple_email_by_account.

Python 可视化Twitter中指定话题中Tweet的词汇频率

CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-8 @author: guaguastd @name: plot_frequencies_words.py ''' if __name__ == '__main__': #import json # import Counter from collections import Counter # import search from search impor

Python 对Twitter中指定话题的Tweet基本元素的频谱分析

CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-9 @author: guaguastd @name: entities_frequency_map.py ''' if __name__ == '__main__': # import Counter from collections import Counter # import visualize from visualize import visua

Python 对Twitter中指定话题的被转载Tweet数量的频谱分析

CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-10 @author: guaguastd @name: retweet_frequency_map.py ''' if __name__ == '__main__': # import visualize from visualize import visualize_frequency_map # pip install prettytable # fr

微信接口-发送内容到指定用户

function wx_sendtext($openid,$text,$appId,$appSecret) { $access_token = get_access_token($appId,$appSecret); $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=$access_token"; $data_string = '{"touser":"'.$