python微信聊天機器人,自動翻譯
阿新 • • 發佈:2018-12-26
使用itchat,itchat是一個開源的微信個人號介面,使用python呼叫微信從未如此簡單。
聊天機器人呼叫的是圖靈機器人介面。
在http://www.tuling123.com/ 註冊賬號有自己的appkey
翻譯呼叫的是百度的翻譯介面。
在百度翻譯http://api.fanyi.baidu.com/api/trans/product/index 註冊賬號就可以有自己的appid 和secretKey
實現功能:
1,訊息前有#為翻譯,可中英互譯
2,聊天對話
以下程式碼在2018年10月23日 python3下執行通過
#-*- coding:utf-8 -*- import itchat from itchat.content import * import requests import json import hashlib import random def is_chinese(uchar): if '\u4e00' <= uchar <= '\u9fff': return True else: return False @itchat.msg_register(TEXT) def reply_text(msg): from_text = msg['Text'] # 訊息帶有 ‘#’ 字首為翻譯 if from_text[0] == '#': if is_chinese(from_text[1:]): fromLang = 'zh' toLang = 'en' else: fromLang = 'en' toLang = 'zh' to_text = baidu_trans_api(from_text[1:], fromLang, toLang) itchat.send(to_text, msg['FromUserName']) else: to_text = tuling(from_text) itchat.send(to_text, msg['FromUserName']) def tuling(info): appkey = "e5ccc9c7c8834ec3b08940e290ff1559" url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" % (appkey, info) req = requests.get(url) content = req.text data = json.loads(content) answer = data['text'] return answer def baidu_trans_api(info, fromLang, toLang): appid = '20181022000223013' # 你的appid secretKey = '9gQCAqD08KIRxUpPR1ra' # 你的金鑰 myurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate' salt = random.randint(32768, 65536) def md5(str): str = str.encode('utf-8') # python2 不需要此行程式碼 m = hashlib.md5() m.update(str) return m.hexdigest() sign = appid + info + str(salt) + secretKey sign = md5(sign) myurl = myurl + '?appid=' + appid + '&q=' + info + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str( salt) + '&sign=' + sign response = requests.get(myurl) try: return response.json()["trans_result"][0]["dst"] except: return response.json()["error_msg"] if __name__ == '__main__': itchat.auto_login(hotReload=True) itchat.run()