微信消息自动回复并汇总

程序运行需扫描二维码登陆微信

微信信息格式例如:
姓名:张三
电话:14565343245
地址:山东省青岛市…

收到信息默认自动回复“已查收”,如需更改请输入2
输入关键词样式为:姓名,电话,地址
(注:中间用中文逗号隔开)

下面为具体操作界面截图
运行界面
运行界面
输入需要汇总的关键词,例如:姓名,电话,地址,然后回车


在这里插入图片描述
更改回复语句,如需更改请输入2,并输入自动回复信息,然后回车


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
随后正常情况弹出Excel界面与二维码,扫描进行登录


在这里插入图片描述
表示正常进入


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
随后别人给你发消息,包含姓名,电话,地址三个关键词就会自动回复并进行汇总


在这里插入图片描述
在这里插入图片描述
继续发送会重复计入,最后记得保存excel哦


如果觉得每次打开都要开python,那么可以封装成exe文件,这样直接运行就可以了
具体操作:打开运行(Ctrl+F),输入cmd,回车
在cmd命令中输入“pyinstaller -F 文件名.py
这里注意,文件名不能是中文,否则容易报错
封装好的exe程序就在dist文件夹中
运行程序在dist文件夹里
源代码为auto_weixin.py文件(python3.6版本)
下面附上源代码

# -*- coding: utf-8 -*-
"""
Created on Fri Mar 29 19:40:49 2019

@author: Administrator
"""

import re
import itchat as wx
import win32com.client as win32

print('''说明:
本程序功能为汇总微信信息,并导入Excel
****************************************************
程序运行需扫描二维码登陆微信

微信信息格式例如:
姓名:张三
电话:14565343245
地址:山东省青岛市...

收到信息默认自动回复“已查收”,如需更改请输入2
输入样式为:姓名,电话,地址
(注:中间用中文逗号隔开)
****************************************************''')

keyword=input('请输入汇总信息关键词(中间用中文逗号隔开):')
match_str=re.compile('[,.,。;;]')
kword=re.split(match_str,keyword)
#去掉列表里空元素
while '' in kword:
    kword.remove('')
select=input('是否更改自动回复语句,默认“已查收”,不改请输入1,改则输入2:')

while select!='1' and select!='2':
    select=input('输入错误,请重新输入(1或者2):')
    if select=='1' or select=='2':
        break
if select=='1' :
    auto_reply='已查收'
if select=='2' :
    auto_reply=input('请输入自动回复语句:')

    

app = 'Excel'
xl = win32.gencache.EnsureDispatch('%s.Application' % app)
ss = xl.Workbooks.Add()
sh = ss.ActiveSheet
xl.Visible = True
sheet = ss.Worksheets(1)
#time.sleep(1)
for i in range(len(kword)):
    sh.Cells(1,i+1).Value =kword[i]
    sh.Range(sh.Cells(1, 1), sh.Cells(1, len(kword))).Font.Bold = True
sh.Range(sh.Cells(1, 1), sh.Cells(1, len(kword))).HorizontalAlignment = win32.constants.xlCenter #水平居中xlCenter 

@wx.msg_register([wx.content.TEXT])
def text_reply(msg):
  #先判断接受到的信息是否为文本类型
  if msg['Type']=='Text':
 
    info = msg['Content']
    n=0
    people=sheet.UsedRange.Rows.Count #行数   

    for i in range(len(kword)):
        if kword[i].strip() in info:
            n=n+1
            sh.Cells(people+1,i+1).Value =re.findall(''+str(kword[i].strip())+'.(.+)',info)[0].strip()

    if n==len(kword):  
        wx.send_msg(auto_reply, msg['FromUserName'])
        sh.Range(sh.Cells(people+1, 1), sh.Cells(people+1, len(kword))).HorizontalAlignment = win32.constants.xlCenter #水平居中xlCenter
        print('已汇总'+str(people)+'人')

 
if __name__ == '__main__':
 
    wx.auto_login(hotReload=True)  
    wx.run() 
原创文章 27 获赞 24 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u013289615/article/details/89306349