itchat是python開源第三方庫,用于搭建微信機(jī)器人,幾十行代碼就能幫你實(shí)現(xiàn)自動(dòng)的處理所有信息。比如,添加好友,搭建自動(dòng)回復(fù)機(jī)器人,還原撤銷信息,分析好友男女比例,地理分布情況,爬朋友圈做數(shù)據(jù)分析…
本文只是簡單實(shí)現(xiàn)聊天機(jī)器人,想了解更多關(guān)于itchat的用法請(qǐng)參照:https://itchat.readthedocs.io/zh/latest/
安裝
pip install itchat
登錄
itchat.auto_login(hotReload=True)
執(zhí)行后會(huì)出現(xiàn)一個(gè)二維碼,掃碼登錄。hotReload=True可以保留登錄狀態(tài),以至于往后的重啟程序可以跳過掃碼登錄。
消息類型
參數(shù) | 類型 |
---|---|
TEXT | 文本 |
MAP | 位置 |
CARD | 名片 |
SHARING | 分享 |
PICTURE | 圖片表情 |
RECORDING | 語音 |
ATTACHMENT | 附件 |
VIDEO | 小視頻 |
發(fā)送消息
send(msg='text',toUserName=None)
- msg:發(fā)送的內(nèi)容
- toUserName:發(fā)送對(duì)象,None表示自己
內(nèi)容類型:
- 圖片:@img@img_path
- 視頻:@vid@vid_path
- 文件:@fil@file_path
ps:接收到的附件路徑一般默認(rèn)存放在當(dāng)前路徑的msg[‘FileName']下
注冊(cè)會(huì)話監(jiān)聽
#TEXT:監(jiān)聽的消息類型 @itchat.msg_register(TEXT) def text_reply(msg): #過濾掉某人,NickName是昵稱 if msg.User['NickName'] == 'xxx': pass else: # return_text = tuling(msg.text) #這種send方法會(huì)自己回復(fù)自己的消息 # msg.user.send(u'收到了') #只回復(fù)對(duì)方的消息 return u'收到了'
圖靈聊天機(jī)器人
在圖靈機(jī)器人官網(wǎng)(http://www.tuling123.com)注冊(cè)賬號(hào),創(chuàng)建機(jī)器人,如果只是學(xué)習(xí)的話,可以使用免費(fèi)版,一個(gè)賬號(hào)最多可以創(chuàng)建5個(gè)機(jī)器人,一個(gè)機(jī)器人日調(diào)用接口數(shù)5000次。
#申請(qǐng)機(jī)器人后會(huì)拿到一個(gè)key key = '3c925fbee6f84ad2aa032ab05d4581b0' def tuling(info): url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" % (key, info) r = requests.get(url) #返回消息 return r.json().get('text')
附上完整代碼(文本圖片群聊)
# coding: utf-8 # @Time : 2019/2/20 23:32 # @Author : lsn # @File : itchat_demo.py # @Software: PyCharm import itchat import requests from itchat.content import * key = '3c925fbee6f84ad2aa032ab05d4581b0' def tuling(info): url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" % (key, info) r = requests.get(url) return r.json().get('text') @itchat.msg_register(TEXT) def text_reply(msg): if msg.User['NickName'] == 'xxx': pass else: return_text = tuling(msg.text) # msg.user.send(return_text) return return_text @itchat.msg_register( [PICTURE, RECORDING, ATTACHMENT, VIDEO]) def download_files(msg): print msg['Type'] print msg['FileName'] msg['Text'](msg['FileName']) return '@%s@%s' % ({'Picture': 'img', 'Video': 'vid'}.get(msg['Type'], 'fil'), msg['FileName']) @itchat.msg_register(TEXT, isGroupChat=True) def group_text_reply(msg): group_list = list() # 針對(duì)指定群回復(fù) group_list.append(u'彈一彈') group_list.append(u'養(yǎng)生游戲分享') # 當(dāng)然如果只想針對(duì)@你的人才回復(fù),可以設(shè)置if msg['isAt']: if msg.User['NickName'] in group_list: return tuling(msg.text) else: pass itchat.auto_login(hotReload=True) itchat.run()
參考:https://www.jb51.net/article/162809.htm
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
