itchat是python開源第三方庫,用于搭建微信機器人,幾十行代碼就能幫你實現自動的處理所有信息。比如,添加好友,搭建自動回復機器人,還原撤銷信息,分析好友男女比例,地理分布情況,爬朋友圈做數據分析…
本文只是簡單實現聊天機器人,想了解更多關于itchat的用法請參照:https://itchat.readthedocs.io/zh/latest/
安裝
pip install itchat
登錄
itchat.auto_login(hotReload=True)
執行后會出現一個二維碼,掃碼登錄。hotReload=True可以保留登錄狀態,以至于往后的重啟程序可以跳過掃碼登錄。
消息類型
| 參數 | 類型 |
|---|---|
| TEXT | 文本 |
| MAP | 位置 |
| CARD | 名片 |
| SHARING | 分享 |
| PICTURE | 圖片表情 |
| RECORDING | 語音 |
| ATTACHMENT | 附件 |
| VIDEO | 小視頻 |
發送消息
send(msg='text',toUserName=None)
- msg:發送的內容
- toUserName:發送對象,None表示自己
內容類型:
- 圖片:@img@img_path
- 視頻:@vid@vid_path
- 文件:@fil@file_path
ps:接收到的附件路徑一般默認存放在當前路徑的msg[‘FileName']下
注冊會話監聽
#TEXT:監聽的消息類型
@itchat.msg_register(TEXT)
def text_reply(msg):
#過濾掉某人,NickName是昵稱
if msg.User['NickName'] == 'xxx':
pass
else:
# return_text = tuling(msg.text)
#這種send方法會自己回復自己的消息
# msg.user.send(u'收到了')
#只回復對方的消息
return u'收到了'
圖靈聊天機器人
在圖靈機器人官網(http://www.tuling123.com)注冊賬號,創建機器人,如果只是學習的話,可以使用免費版,一個賬號最多可以創建5個機器人,一個機器人日調用接口數5000次。
#申請機器人后會拿到一個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()
# 針對指定群回復
group_list.append(u'彈一彈')
group_list.append(u'養生游戲分享')
# 當然如果只想針對@你的人才回復,可以設置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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

