小編給大家分享一下WechatPCAPI庫(kù)如何實(shí)現(xiàn)自動(dòng)化回復(fù),希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、興業(yè)ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的興業(yè)網(wǎng)站制作公司
目前有一個(gè)項(xiàng)目 WechatPCAPI
可以對(duì)微信進(jìn)行操作,簡(jiǎn)單來(lái)說(shuō)它是直接操作 PC 版微信客戶端的,當(dāng)然它有一定不足之處就是:PC 版微信客戶端和 Python 都需要使用指定版本的,本文我們使用的 Python 版本為 3.7.6
,微信客戶端使用版本為 2.6.8.52
,WechatPCAPI 的 GitHub 地址為: https://github.com/Mocha-L/WechatPCAPI。
WechatPCAPI
提供了方法 get_friends()
,該方法返回信息包括:好友、群和公眾號(hào)的列表信息,信息內(nèi)容主要包括:微信號(hào)、昵稱和自己設(shè)置的備注。
我們使用獲取的昵稱做個(gè)簡(jiǎn)單的詞云展示,代碼實(shí)現(xiàn)如下所示:
logging.basicConfig(level=logging.INFO) def on_message(message): pass def get_friends(): # 初始化微信實(shí)例 wx_inst = WechatPCAPI(on_message=on_message, log=logging) # 啟動(dòng)微信 wx_inst.start_wechat(block=True) # 等待登陸成功,此時(shí)需要人為掃碼登錄微信 while not wx_inst.get_myself(): time.sleep(5) print('登陸成功') nicknames = [] # 排除的詞 remove = ['還是', '不會(huì)', '一些', '所以', '果然', '起來(lái)', '東西', '為什么', '真的', '這么', '但是', '怎么', '還是', '時(shí)候', '一個(gè)', '什么', '自己', '一切', '樣子', '一樣', '沒(méi)有', '不是', '一種', '這個(gè)', '為了' ] for key, value in wx_inst.get_friends().items(): if key in ['fmessage', 'floatbottle', 'filehelper'] or 'chatroom' in key: continue nicknames.append(value['wx_nickname']) words = [] for text in nicknames: if not text: continue for t in jieba.cut(text): if t in remove: continue words.append(t) global word_cloud # 用逗號(hào)隔開(kāi)詞語(yǔ) word_cloud = ','.join(words) def nk_cloud(): # 打開(kāi)詞云背景圖 cloud_mask = np.array(Image.open('bg.png')) # 定義詞云的一些屬性 wc = WordCloud( # 背景圖分割顏色為白色 background_color='white', # 背景圖樣 mask=cloud_mask, # 顯示最大詞數(shù) max_words=300, # 顯示中文 font_path='./fonts/simkai.ttf', # 最大尺寸 max_font_size=70 ) global word_cloud # 詞云函數(shù) x = wc.generate(word_cloud) # 生成詞云圖片 image = x.to_image() # 展示詞云圖片 image.show() # 保存詞云圖片 wc.to_file('nk.png')
看一下效果:
我們?cè)谑褂梦⑿藕秃糜蚜奶鞎r(shí),對(duì)方有時(shí)會(huì)有撤回消息的情況,正常情況下,我們是不知道好友撤回的消息是什么的,通過(guò) WechatPCAPI
就可以實(shí)現(xiàn)消息防撤回的功能。
我們知道通常撤回的消息是點(diǎn)擊撤回操作前一步發(fā)送的內(nèi)容,當(dāng)然也可能撤回的是前兩步、三步 ... 的消息,這里我們只對(duì)撤回前一步的消息做處理,基本思路是:我們將撤回前一步發(fā)送的消息存一下,當(dāng)對(duì)方點(diǎn)擊撤回操作時(shí),我們?cè)賹⑶耙徊降南⒃俅畏祷亟o自己。
下面看一下實(shí)現(xiàn)代碼:
logging.basicConfig(level=logging.INFO) queue_recved_event = Queue() def on_message(msg): queue_recved_event.put(msg) def login(): pre_msg = '' # 初始化微信實(shí)例 wx_inst = WechatPCAPI(on_message=on_message, log=logging) # 啟動(dòng)微信 wx_inst.start_wechat(block=True) # 等待登陸成功,此時(shí)需要人為掃碼登錄微信 while not wx_inst.get_myself(): time.sleep(5) print('登陸成功') while True: msg = queue_recved_event.get() data = msg.get('data') sendinfo = data.get('sendinfo') data_type = str(data.get('data_type')) msgcontent = str(data.get('msgcontent')) is_recv = data.get('is_recv') print(msg) if data_type == '1' and 'revokemsg' not in msgcontent: pre_msg = msgcontent if sendinfo is not None and 'revokemsg' in msgcontent: user = str(sendinfo.get('wx_id_search')) recall = '撤回的消息:' + pre_msg wx_inst.send_text(to_user=user, msg=recall)
看一下操作
看完了這篇文章,相信你對(duì)WechatPCAPI庫(kù)如何實(shí)現(xiàn)自動(dòng)化回復(fù)有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!