Python實現(xiàn)微信翻譯機器人的方法
相信大家在日常學(xué)習(xí)或者是閱讀英文文章的過程中,難免會出現(xiàn)幾個不認識的單詞,或者想快速翻譯某段英文的意思。
今天,利用Python爬蟲等知識,教大家打造一個微信下的翻譯小助手。好吧,開始干活。
先來看看效果如何
發(fā)送要翻譯的內(nèi)容給我們的翻譯小助手,它會自動回復(fù)翻譯好的內(nèi)容。
環(huán)境配置:
Python版本:3.6.0
系統(tǒng)平臺:Windows 10 X64
IDE:pycharm
相關(guān)模塊:
json模塊
itchat模塊
re模塊
request模塊
parse模塊
以及一些Python自帶的模塊。
根據(jù)內(nèi)容獲取翻譯的結(jié)果
這里使用的是有道翻譯API接口。大致思路說一下:
1. 創(chuàng)建連接接口 2. 創(chuàng)建要提交的數(shù)據(jù) 3. 將數(shù)據(jù)轉(zhuǎn)化為服務(wù)器可以處理的信息并提交
4. 返回翻譯結(jié)果
這部分功能我們封裝成一個函數(shù),參數(shù)是需要發(fā)送的微信用戶名,需要翻譯的內(nèi)容。
數(shù)據(jù)格式我們是以json的格式發(fā)送過去的,然后獲取的也是json的數(shù)據(jù)格式,該過程需要做些轉(zhuǎn)換。
還需要把數(shù)據(jù)轉(zhuǎn)換成utf-8的編碼,回來的數(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是一個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é)在仔細看看代碼注釋。
微信收發(fā)送消息
關(guān)于微信收發(fā)送消息呢,可以看看之前Python打造天氣預(yù)報機器這一篇文章,代碼是直接從那邊稍加修改搬過來的。
那邊是獲取天氣,這邊是獲取翻譯結(jié)果,思路都是一樣的。直接看代碼就可以了:
# 如果對方發(fā)的是文字,則我們給對方回復(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()
我們需要對消息進行匹配分析,以便確定用戶需要的是翻譯功能而不是天氣預(yù)報等功能,所以需要利用re進行匹配一下關(guān)鍵字。
然后調(diào)用translate函數(shù)進行獲取發(fā)送。
完整代碼:
# 有道翻譯結(jié)果獲取 ''' 大致思路如下 1. 創(chuàng)建連接接口 2. 創(chuàng)建要提交的數(shù)據(jù) . 將數(shù)據(jù)轉(zhuǎn)化為服務(wù)器可以處理的信息并提交 . 返回翻譯結(jié)果 ''' # 引入python中內(nèi)置的包json. 用來解析和生成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是一個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é)果 # 如果對方發(fā)的是文字,則我們給對方回復(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()
總結(jié)
以上所述是小編給大家介紹的Python實現(xiàn)微信翻譯機器人的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
- Python實現(xiàn)企業(yè)微信機器人每天定時發(fā)消息實例
- Python調(diào)用釘釘自定義機器人的實現(xiàn)
- Python使用微信接入圖靈機器人過程解析
- 基于python的itchat庫實現(xiàn)微信聊天機器人(推薦)
- python實現(xiàn)機器人卡牌
- Python實現(xiàn)微信機器人的方法
- Python3從零開始搭建一個語音對話機器人的實現(xiàn)
- 基于Python的微信機器人開發(fā) 微信登錄和獲取好友列表實現(xiàn)解析
- Python qqbot 實現(xiàn)qq機器人的示例代碼
- python實現(xiàn)微信自動回復(fù)機器人功能
- 如何用Python做一個微信機器人自動拉群
- Python QQBot庫的QQ聊天機器人
- 使用python接入微信聊天機器人
- itchat-python搭建微信機器人(附示例)
- python實現(xiàn)微信機器人: 登錄微信、消息接收、自動回復(fù)功能
- 手把手教你使用Python創(chuàng)建微信機器人
- python控制nao機器人身體動作實例詳解
- Python開發(fā)企業(yè)微信機器人每天定時發(fā)消息實例
相關(guān)文章
Python APScheduler執(zhí)行使用方法詳解
在本篇文章里小編給大家整理的是一篇關(guān)于Python APScheduler執(zhí)行使用方法的相關(guān)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2020-12-12python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計處理操作
這篇文章主要介紹了python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04Python實例方法與類方法和靜態(tài)方法介紹與區(qū)別分析
在 Python 中,實例方法(instance method),類方法(class method)與靜態(tài)方法(static method)經(jīng)常容易混淆。本文通過代碼例子來說明它們的區(qū)別2022-10-10基于python的selenium兩種文件上傳操作實現(xiàn)詳解
這篇文章主要介紹了基于python的selenium兩種文件上傳操作實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09python使用struct模塊實現(xiàn)打包/解包二進制數(shù)據(jù)
因為網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)都是二進制字節(jié)流,而?Python?只有字符串可以直接轉(zhuǎn)成字節(jié)流,對于整數(shù)、浮點數(shù)則無能為力了,所以?Python?提供了?struct?模塊來幫我們解決這一點,下面我們就來看看它的用法吧2023-09-09