小編給大家分享一下Python如何實(shí)現(xiàn)微信翻譯機(jī)器人,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
功能:
發(fā)送要翻譯的內(nèi)容給我們的翻譯小助手,它會(huì)自動(dòng)回復(fù)翻譯好的內(nèi)容。
環(huán)境配置:
Python版本:3.6.0
系統(tǒng)平臺(tái):Windows 10 X64
IDE:pycharm
相關(guān)模塊:
json模塊
itchat模塊
re模塊
request模塊
parse模塊
以及一些Python自帶的模塊。
根據(jù)內(nèi)容獲取翻譯的結(jié)果
這里使用的是有道翻譯API接口。大致思路說(shuō)一下:
1. 創(chuàng)建連接接口 2. 創(chuàng)建要提交的數(shù)據(jù) 3. 將數(shù)據(jù)轉(zhuǎn)化為服務(wù)器可以處理的信息并提交
4. 返回翻譯結(jié)果
這部分功能我們封裝成一個(gè)函數(shù),參數(shù)是需要發(fā)送的微信用戶名,需要翻譯的內(nèi)容。
數(shù)據(jù)格式我們是以json的格式發(fā)送過(guò)去的,然后獲取的也是json的數(shù)據(jù)格式,該過(guò)程需要做些轉(zhuǎn)換。
還需要把數(shù)據(jù)轉(zhuǎn)換成utf-8的編碼,回來(lái)的數(shù)據(jù)也需要做相應(yīng)的轉(zhuǎn)換和解析,具體看下面代碼:
def translate(userName, content): req_url = 'http://fanyi.youdao.com/translate' # 創(chuàng)建連接接口 # 創(chuàng)建要提交的數(shù)據(jù) Form_Date = {} Form_Date['i'] = content # 輸入要翻譯的內(nèi)容 Form_Date['doctype'] = 'json' data = parse.urlencode(Form_Date).encode('utf-8') # 數(shù)據(jù)轉(zhuǎn)換 response = request.urlopen(req_url, data) # 提交數(shù)據(jù)并解析 html = response.read().decode('utf-8') # 服務(wù)器返回結(jié)果讀取 # 可以看出html是一個(gè)json格式 translate_results = json.loads(html) # 以json格式載入 translate_results = translate_results['translateResult'][0][0]['tgt'] # json格式調(diào)取 print(translate_results) # 輸出結(jié)果 itchat.send(translate_results, toUserName=userName) #發(fā)送翻譯結(jié)果
不了解的同學(xué)在仔細(xì)看看代碼注釋。
微信收發(fā)送消息
關(guān)于微信收發(fā)送消息呢,可以看看之前Python打造天氣預(yù)報(bào)機(jī)器這一篇文章,代碼是直接從那邊稍加修改搬過(guò)來(lái)的。
那邊是獲取天氣,這邊是獲取翻譯結(jié)果,思路都是一樣的。直接看代碼就可以了:
# 如果對(duì)方發(fā)的是文字,則我們給對(duì)方回復(fù)以下的東西 @itchat.msg_register([TEXT]) def text_reply(msg): match = re.search('翻譯',msg['Text']) if match: content = msg['Text'][msg['Text'].find("+")+1:] translate(msg['FromUserName'], content) itchat.auto_login() itchat.run()
我們需要對(duì)消息進(jìn)行匹配分析,以便確定用戶需要的是翻譯功能而不是天氣預(yù)報(bào)等功能,所以需要利用re進(jìn)行匹配一下關(guān)鍵字。
然后調(diào)用translate函數(shù)進(jìn)行獲取發(fā)送。
完整代碼:
# 有道翻譯結(jié)果獲取 ''' 大致思路如下 1. 創(chuàng)建連接接口 2. 創(chuàng)建要提交的數(shù)據(jù) . 將數(shù)據(jù)轉(zhuǎn)化為服務(wù)器可以處理的信息并提交 . 返回翻譯結(jié)果 ''' # 引入python中內(nèi)置的包json. 用來(lái)解析和生成json數(shù)據(jù)的 import json import itchat import re from itchat.content import * from urllib import request, parse def translate(userName, content): req_url = 'http://fanyi.youdao.com/translate' # 創(chuàng)建連接接口 # 創(chuàng)建要提交的數(shù)據(jù) Form_Date = {} Form_Date['i'] = content # 輸入要翻譯的內(nèi)容 Form_Date['doctype'] = 'json' data = parse.urlencode(Form_Date).encode('utf-8') # 數(shù)據(jù)轉(zhuǎn)換 response = request.urlopen(req_url, data) # 提交數(shù)據(jù)并解析 html = response.read().decode('utf-8') # 服務(wù)器返回結(jié)果讀取 # 可以看出html是一個(gè)json格式 translate_results = json.loads(html) # 以json格式載入 translate_results = translate_results['translateResult'][0][0]['tgt'] # json格式調(diào)取 print(translate_results) # 輸出結(jié)果 itchat.send(translate_results, toUserName=userName) #發(fā)送翻譯結(jié)果 # 如果對(duì)方發(fā)的是文字,則我們給對(duì)方回復(fù)以下的東西 @itchat.msg_register([TEXT]) def text_reply(msg): match = re.search('翻譯',msg['Text']) if match: content = msg['Text'][msg['Text'].find("+")+1:] translate(msg['FromUserName'], content) itchat.auto_login() itchat.run()
看完了這篇文章,相信你對(duì)“Python如何實(shí)現(xiàn)微信翻譯機(jī)器人”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享名稱(chēng):Python如何實(shí)現(xiàn)微信翻譯機(jī)器人-創(chuàng)新互聯(lián)
本文地址:http://aaarwkj.com/article16/pjhgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、域名注冊(cè)、網(wǎng)站維護(hù)、定制網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容