微信聊天机器人-存储好友分享消息

阅读目录 一、背景 二、效果展示 三、wxpy 四、读写excel 五、定时器 六、demo下载 七、参考文章 回到顶部 一、背景 一般大公司都比较重视企业文化,和学习氛围,这不我们的团队也是如此,每个人每月微信分享必须超过5篇内容,一个是提高自己的阅读量,另外还可以把有用的资源分享给其他人。开始记录的一段时间还算比较顺利,可是当大家的分享内容一多的时候,总是发生记漏的情况,后来我就萌生了一个想法,可不可以让程序来记录分享数据,这样就不会发生错误了。正好这一段时间刚好在学习python,那就拿这个案例来练练手,网上搜索了一些资料,发现我的需求果然可以用程序来实现,那么还等什么直接开干吧 回到顶部 二、效果展示 1、自动回复 2、生成的excel效果展示 回到顶部 三、wxpy wxpy 1、wxpy安装比较简单,直接使用pip命令行安装即可:pip install wxpy 2、wxpy的帮助文档还是比较详细的,网上大多数的文章都是简单的使用了下这个库,没有详细的解释,如果有时间,建议最好自己过一遍帮助文档 3、使用起来也是相当简单 3.1先导入wxpy模块 1 from wxpy import * 3.2构造一个机器人对象(机器人对象可构造多个) 1 bot = Bot() 3.3发送消息给文件助手 1 bot.file_helper.send('你好') 3.4发送消息给好友 复制代码 1 friend = bot.friends().search('朝十晚八')[0] 2 friend.send('你好') 复制代码 3.5自动回复指定好友消息 复制代码 1 @bot.register([Friend]) 2 def auto_monitor_friend_all(msg): 3 with cond : 4 if msg.text.startswith(orderHeader) and msg.sender.name in destusers : 5 print(u'收到一条好友指令消息:', msg.text) 6 __dealwith_order(msg) 7 else : 8 print(u'收到一条好友消息', msg) 9 if msg.type == PICTURE : 10 image_cache = image_cache_path + '/' + msg.file_name 11 msg.get_file(image_cache) 12 tuling.do_reply(msg) 复制代码 上述自动回复消息使用了图灵机器人,使用时需要自己去这儿申请一个图灵账号,然后创建一个图灵机器人,得到机器人的apikey,然后构造一个Tuling对象,使用该对象进程回复消息 1 tuling = Tuling(api_key='3d131c218dd44aa88def35ac37b5c9ab') 3.6自动添加好友 复制代码 1 # 注册好友请求类消息 2 @bot.register(msg_types = FRIENDS) 3 def auto_accept_friends(msg): 4 with cond : 5 # 接受好友 (msg.card 为该请求的用户对象) 6 new_friend = bot.accept_friend(msg.card) 7 new_friend.send(u'图灵接受了你的好友请求,我们可以开始聊天了') 复制代码 3.7添加后台定时消息 wxpy构造的机器人对象属于web方式连接,如果长时间没有消息,可能会掉线,因此我们开启一个后台线程,隔一段时间发送消息给自己。 复制代码 1 def restartTimer() : 2 global t 3 if t.is_alive() : 4 t.stop() 5 6 t = Timer.Timer(deamonMsg, timerInterval) 7 t.setDaemon(True) 8 t.start() 9 10 def deamonMsg() : 11 with cond : 12 msgCount = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') 13 print(u'发送消息给文件夹助手,保持连接活跃。消息内容:', msgCount) 14 bot.file_helper.send(msgCount) 复制代码 上述代码中cond为线程同步条件变量,当使用bot对象发送消息时,需要对bot对象进行保护。 3.8处理消息指令,主要用于控制定时器 View Code 回到顶部 四、读写excel 1、使用pip命令安装openpyxl:pip install openpyxl 2、使用openpyxl.load_workbook加载excel文件,如果文件不存在则使用openpyxl.Workbook()构造工作簿,操作完成后使用工作簿save接口保存文件 复制代码 1 if os.path.exists(fileName) : 2 wbk = openpyxl.load_workbook(fileName) 3 names = wbk.sheetnames 4 else : 5 wbk = openpyxl.Workbook() 6 sheet = wbk.active 7 sheet.title = 'all' 8 names.append('all') 9 FixedSheetWidth(sheet) 复制代码 3、修改列宽度和内容 复制代码 1 headList = ['发送者', '群聊', '接受者', '发送时间', '接受时间','分享内容', '网址'] 2 3 def GetCellKey(r, c) : 4 cell = chr(ord('A') + c - 1) + str(r) 5 return cell 6 7 def FixedSheetWidth(sheet) : 8 for i in range(0, len(cwidth)): 9 sheet.column_dimensions[chr(ord('A') + i)].width = cwidth[i] 10 11 def WriteSheetTitle(sheet) : 12 i = 1 13 for svalue in headList: 14 sheet[GetCellKey(1, i)] = svalue 15 sheet[GetCellKey(1, i)].font = openpyxl.styles.Font(bold = True) 16 i = i + 1 复制代码 4、添加行数据 View Code 5、备份用于查看的文件 复制代码 1 #备份文件 2 file2see = os.path.join(os.getcwd(), generateFileName('')) 3 if not os.path.exists(file2see) : 4 shutil.copyfile(fileName, file2see) 5 else : 6 if os.access(file2see, os.W_OK) : 7 shutil.copyfile(fileName, file2see) 复制代码 回到顶部 五、定时器 定时器主要用于后台定时发送消息给机器人自己,保持自己在线状态  定时器对象使用python的线程对象thread.Thread作为父类,并添加了pause、is_pause、resume和stop接口,使定时器控制起来更方便 View Code 回到顶部 六、demo下载   需要全部代码的到csdn直接下载:自动聊天机器人-存储好友分享消息 回到顶部 七、参考文章 关于wxpy的小实验(一):实现登录微信、消息接收、处理、回复和人脸检测处理反馈 用python读写excel(xlrd、xlwt) python3 读写Excelhttps://www.cnblogs.com/swarmbees/p/9996547.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信