ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用WechatPCAPI实现简易版半自动定制化微信新年祝福群发

2022-01-28 20:35:25  阅读:256  来源: 互联网

标签:化微信 微信 WechatPCAPI inst message 群发 好友 wx


农历新年马上又要来了,为了能给好友们送上真挚的祝福,曾经的我通常都是一条一条发/doge。编辑并发送一条大概需要5-10秒,1000个好友连续不停地发最少也需要一个半小时,费时费力还看不了春晚。

于是,今年我下决心要找到一个省时省力的群发方法,于是便有了下面的内容:

一、需求

1.群发对象:我的好友们

2.群发内容:定制化消息,新年祝福词+【我的名】+祝+【好友称呼】+新年祝福词

3.操作系统:windows10

4.所用程序:excel、notepad++、pycharm、微信电脑版V2.7.1.82

5.编程语言:python3.7

6.核心包:WechatPCAPI(网址:https://github.com/jwpl190/WechatPCAPI),微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。感谢作者提供了如此好用的微信接口调用,详情可访问上面的github地址。

7.工具下载:

(1)【WechatPCAPI作者提供】WechatPCAPI包+微信电脑版V2.7.1.82

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

           提取码:rneo

(2)Pycharm CE版(免费):https://www.jetbrains.com/pycharm/download/download-thanks.html?code=PCC 点开链接弹出自动下载。

(3)excel和notepad++就不发了。

二、具体步骤

原理:提取微信好友信息,将好友微信号、祝福语等数据处理成字典格式,随后导入到python项目中,使用WechatPCAPI完成自动发送。

1.安装python3.7(详见:https://blog.csdn.net/weixin_43790276/article/details/89439352);

2.解压WechatPCAPI-master文件,将里面的WechatPCAPI.pyd文件拷贝到python3.7的根目录中,将WechatPCAPI.pyd文件和lib文件夹拷贝到根目录\Lib\site-packages中(以前没用过pyd文件,对这部分的理解稍微有些模糊,如有大佬懂pyd的调用,请带带我);

3.安装微信电脑版V2.7.1.82;

3.打开pycharm,new project,选中该项目创建的目录,随后在Existing interpreter中找到python3.7,如果没有点击右侧浏览,找到对应目录:

4.在pycharm中,File-New-Python File创建newyear_friendlist.py

复制下列代码:

# -*- coding: utf-8 -*-
from WechatPCAPI import WechatPCAPI
import time,os # 接收消息的回调函数,可自行定义 def on_message(message): print(message) def main(): # 初始化wx实例 wx_inst = WechatPCAPI(on_message=on_message) # 启动微信 目前仅支持微信V2.7.1.82 wx_inst.start_wechat(block=True) # 等待登陆成功,此时需要人为扫码登录微信 while not wx_inst.get_myself(): time.sleep(5) # 登录成功了 print(wx_inst.get_myself()) # 以下为发送,可以换成任何人的wx_id
if __name__ == '__main__': main()

运行该代码,如正常运行,会弹出微信登陆界面,扫码登陆,随后会在log中列出所有微信好友的信息:

其中,wx_id_search为好友微信号,wx_nickname为好友微信昵称,remark_name为好友备注;

5.好友、祝福语等数据处理:

将上述有wx_id这部分的信息复制到excel中,使用分列等方法进行数据清洗、好友称呼修改,祝福语的定制等批量操作(省略),处理为如下格式后,将其保存为friendlist.csv,并保存到该项目目录下;

6.使用notepad++打开friendlist.csv,同时,在该目录下新建一个txt,将其命名为friendlist.txt,并更改编码为UTF-8,把friendlist.csv中的文本全部复制到txt文件中。

7.批量调整下txt中的格式,最终格式如下:

8.在pycharm中,File-New-Python File创建newyear_send.py

复制下列代码:

# -*- coding: utf-8 -*-
from WechatPCAPI import WechatPCAPI
import time
import os


# 接收消息的回调函数,可自行定义
def on_message(message):
    print(message)


def main():
    # 初始化wx实例
    wx_inst = WechatPCAPI(on_message=on_message)

    # 启动微信 目前仅支持微信V2.7.1.82
    wx_inst.start_wechat(block=True)

    # 等待登陆成功,此时需要人为扫码登录微信
    while not wx_inst.get_myself():
        time.sleep(5)

    # 登录成功了
    print(wx_inst.get_myself())

    # 【关键】打开friendlist.txt,从该文件中加载群发数据,读取每行数据转换成字典格式,随后调用字典中的微信号和祝福信息完成信息的发送,sleep(1)代表每过1s发一条,可以自行修改。
# 一定要注意wx_id_search和text要和friendlist.txt中的键名一致,否则调用错误。
with open("friendlist.txt",encoding="utf-8") as f: for line in f: line_dic = eval(line) wx_inst.send_text(to_user=line_dic['wx_id_search'],msg=line_dic['text']) time.sleep(1) # 更新所有好友信息,数据会通过上面的回调函数返回 #wx_inst.update_frinds() if __name__ == '__main__': main()

9.关掉微信,运行newyear_send.py,扫码登陆微信后,祝福信息便一条一条地发送出去了。

注意:不管是微信昵称还是好友备注,在发祝福时可能都需要修改,比如我要给恩师“王大锤”(微信备注)发祝福,通常需要改成王老师更为恰当,因此少不了复杂的人力处理过程,但相比于一条一条手工发送,该方法已经能够节省不少人力。

简易的定制化祝福群发小程序至此结束,由于我习惯了使用excel进行数据处理所以未使用python,导致数据处理算是最复杂的过程了,欢迎大家共同进行优化。 

标签:化微信,微信,WechatPCAPI,inst,message,群发,好友,wx
来源: https://www.cnblogs.com/garywayne/p/15853478.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有